telnetを使用してコマンドをシリアルポートに送信するコンピューターにtelnet経由でコマンドを送信しようとしています。
adb shell
$telnet 172.20.104.203 5334
$h
コマンドhからデータを返しますが、アンドロイドを使用してこれを実行しようとするとソケットに接続され、コンピューターでこれを確認できます。コマンドを送信しますが、送信したことをログに記録するとすぐにハングします「アプリケーションが応答していません」というメッセージが表示され、待機または強制終了があり、待機しても同じままです。
これはtelnet部分の私のコードです
private static final int TCP_SERVER_PORT = 5334;
private void runTcpClient() {
try {
Socket s = new Socket("172.20.104.203", TCP_SERVER_PORT);
BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
//send output msg
String outMsg = "$getPos";
out.write(outMsg);
out.flush();
Log.i("TcpClient", "sent: " + outMsg);
//accept server response
String inMsg = in.readLine() + System.getProperty("line.separator");
Log.i("TcpClient", "received: " + inMsg);
//close connection
s.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
送信はログに記録されますが、受信はログに記録されません。受信されるデータの量と関係があるのではないかと思ったので、送信しました
$getPos
代わりに、それでもハングします。
何が起こっているのか知っている人はいますか?