こんにちは私は、デバイスにテキストを送信するアプリケーションがあり、デバイスはそれをディスプレイに表示します。 AsyncTask
クラスソケット入力ストリームのreadLineがソケットにハングアップする
try {
Socket socket = new Socket(DISPLAY_IP, DISPLAY_PORT);
OutputStream out = socket.getOutputStream();
PrintWriter output = new PrintWriter(out);
output.println(params[0]);
output.flush();
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
に私はソケットを使用していたデータを転送するための問題は、私がデータを送信した後、ソケットからの応答を読み取ることができませんです。私はソケットからのストリームを取得していると私は何も取得していないとデバイスが私がそれをやっているときにソケットがブロックされていると思うので、私はアプリケーションを閉じるまで私から送信されたデータを表示していませんよね
try {
Socket socket = new Socket(DISPLAY_IP, DISPLAY_PORT);
OutputStream out = socket.getOutputStream();
PrintWriter output = new PrintWriter(out);
output.println(params[0]);
output.flush();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String response = bufferedReader.readLine();
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
どのようにデータを送信し、ソケットから応答を読み取ることができますか?
問題が何であるかはわかりませんが、readLine()はハングすると想定されています。実際には、もう一方の端で行が送信される(または接続がタイムアウトするか破損する)までです。 netcatを使用して同じメッセージを送信し、応答が得られているかどうかを確認することをお勧めします。クライアントではなくサーバーで問題が発生する可能性があります。 – SirGregg
私はちょうど私が送信した受信データの後にサーバーが私に 'OK'を送りますので、どうすればいいですか? @SirGregg –