Javaによるソケット通信サーバーアプリケーションを作っていたとき、クライアント端末からの着信に対して1秒以下で応答を返している通信ログが残っているにもかかわらず、クライアント端末側で5秒の応答待ちタイムアウトが発生して通信異常になるケースがテスト中に発生していた。 そのときのサーバー側の応答を返す部分のコードは次のような感じ、 public void writeResponse(byte[] data, Socket socket) throws IOException { DataOutputStream out = new DataOutputStream(new BufferedOutputStream(socket.getOutputStream()); // 電文長を送出 out.writeInt(data.length); // 電文本体を送出 out.write(data)