這是我在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
成員不爲空。
您是從主線程運行此代碼?請分享堆棧跟蹤 –