-1
特定のポート上のソケットを使用してクライアントとサーバーの間でデータを交換するスクリプトを作成しました。ために 、私は期待しています: - >受け取ったことがないソケットがデータをフラッシュしない
Serverは
クライアントを聞いているINTを送信することにより、ソケット
サーバーakwnoledgesを開きます!
私はちょうど私がサーバーを終了すると、ここで残酷
が私の(簡単な)コードです、私のクライアントがintを受け取ることに気づきました。 クライアント:
Socket socket = new Socket(SERVER_ADDR, PORT);
DataOutputStream dOut = new DataOutputStream(socket.getOutputStream());
DataInputStream dIn = new DataInputStream(socket.getInputStream());
Log.v("[DEBUG]", "waiting aknowledgement");
status = dIn.readInt(); //<-- BLOCKS HERE
Log.v("[DEBUG]", "ack"); //<-- RECEIVED WHEN SERVER IS EXITED
はサーバー:
try {
DataInputStream stdIn = new DataInputStream(client.getInputStream());
DataOutputStream stdOut = new DataOutputStream(client.getOutputStream());
while (incoming) {
stdOut.writeInt(1);
stdOut.flush();
System.out.println("Waiting...");
var_from_client = stdIn.readInt(); //<-- BLOCKS HERE (BECAUSE CLIENT IS BLOCKED)
// ...
}
} catch (Exception e) {}
どのようにこのエラーを説明するには?
http://stackoverflow.com/questions/41685367/send-data-from-android-mobile-to-java-server?noredirect=1#comment70569691_41685367を参照してください。私は例外を無視しなかったし、データを正しく送った。よろしく – Anduriel