これはアンドロイドの私の最初のアプリで、TCPクライアントを作成しようとしています。TCPパケットを送信するときにプログラムがクラッシュする
これまでのところ、私はpython TCPサーバーを持っていて、それをpython TCPクライアントでテストしましたが、正常に動作します。
TCPクライアントの例をhereから取得しました。
私はアプリを起動すると、wiresharkで接続が確立されるようにハンドシェイクを確認できます。
今、問題はメッセージを送信することです。れるtcpClientクラスで
public void ChangeButtonState(View view)
{
boolean state = ((ToggleButton) view).isChecked();
if (state)
{
if (mTcpClient != null) {
mTcpClient.sendMessage("testing");
}
textView.setText("button is on. sent Tcp message. ");
textView.setVisibility(View.VISIBLE);
} else {
textView.setText("button is off");
}
}
ラインmBufferOut.println(message);
上のコードがクラッシュする:私は、関数呼び出しの主な活動で
if (mTcpClient != null)
{
mTcpClient.sendMessage("testing");
}
に置くとき。
しかし、TcpClientクラスのmBufferOut = new PrintWriter(socket.getOutputStream());
行の直後にこの関数を呼び出すと、クライアントはメッセージを送信し、サーバーはメッセージを受信してクライアントに返します。
私の質問はなぜコードがクラッシュするのですか? mTcpClient
メンバーはnullではありません。
メインスレッドからこのコードを実行していますか?スタックトレースを共有してください –