そのため、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クライアントでテストしたので、サーバーが問題なくメッセージを送信できることはわかっていますが、タブレットで実行すると、タブレットは何も取得できません
編集:
OS : Windows 7 64 ビット プロフェッショナル版
編集2:
コンピューターでwiresharkを実行しましたが、パケットが正しいアドレスIPに送信されていることを確認できるため、問題は実際には受信側(Androidアプリ)にあります