这是我在android上的第一个应用程序,我试图编写一个TCP客户端。发送TCP数据包时程序崩溃
到目前为止,我有一个Python的TCP服务器,我用python的TCP客户端测试它,它工作正常。
我从here获取了TCP客户端示例。
当我启动应用程序时,我可以在wireshark上看到握手,以便建立连接。
现在,问题是发送消息。当我把函数调用
if (mTcpClient != null)
{
mTcpClient.sendMessage("testing");
}
在主要活动:
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");
}
}
代码崩溃在TcpClient的类行mBufferOut.println(message);
。
但是,如果我在TcpClient类中的行mBufferOut = new PrintWriter(socket.getOutputStream());
之后立即调用该函数,则客户端将传输该消息,服务器接收该消息并将其发送回客户端。
所以我的问题是为什么代码崩溃? mTcpClient
成员不为空。
您是从主线程运行此代码?请分享堆栈跟踪 –