所以我有一个在 Androidt 平板电脑上运行的 TCP 客户端,我有一个在 PC 上运行的 c++ 服务器。
我将数据从平板电脑发送到 PC,PC 可以很好地读取它们,但是当 PC 尝试向平板电脑发送回消息时,平板电脑什么也没有收到。它卡在readLine()
试图阅读某些内容的通话中。
所以这里是发送然后等待响应的java方法
@Override
protected Void doInBackground(Void... arg0)
{
String msg = "";
Socket socket = null;
DataOutputStream outToServer = null;
BufferedReader msgFromServer = null;
try
{
// Socket used for I/O with the server
socket = new Socket("192.168.20.100", 48501);
// Writing to the server
outToServer = new DataOutputStream( socket.getOutputStream() );
// Reading from the server
msgFromServer = new BufferedReader( new InputStreamReader( socket.getInputStream() ) );
DataInputStream iStrReader = new DataInputStream( socket.getInputStream() );
// Initial comm
outToServer.writeBytes( "MainCamConnect" );
msg = msgFromServer.readLine(); // Get stuck here
Log.d( "NETWORK", msg );
socket.close();
}
catch( UnknownHostException e )
{
e.printStackTrace();
}
catch( IOException e )
{
e.printStackTrace();
}
return( null );
}
我从 PC 发送的消息是这样的:“StartDelayTest\n”
我知道服务器可以很好地发送消息,因为我用一个简单的 c++ TCP 客户端对其进行了测试,它工作得很好,但是当我在平板电脑上运行它时,平板电脑什么也得不到
编辑:
操作系统:Windows 7 64 位专业版
编辑2:
我已经在我的电脑上运行了wireshark,我可以确认数据包被发送到正确的地址IP,所以问题确实出在接收端(android应用程序)