複数のスレッドで小さなサーバーをプログラムしました。数時間後(現在、問題を再現できないと言われています)、サーバーは動作を停止します。私のコードは次のようになります。
スレッド2:
while(true)
{
System.out.println("Point 1");
Socket abc = serverSocket.accept();
System.out.println("Point 2");
connection = true;
}
Thread1は、Thread.sleep(1000)ループで待機し、接続がtrueであるかどうかを確認します。そうである場合は動作を開始し、そうでない場合は「待機中」と出力します。接続が中止されると、接続がfalseに設定されます。
これで、メインプログラムがサーバーに接続します。サーバーは、待機中(接続が確立されるまでなど)のポイント1ポイント2を出力します。
これで、数時間実行した後でも、クライアントは接続できます。接続が確立されたと表示されます(clientSocket = new Socket(inetAddress、Integer.parseInt(port));このコマンドが例外なく成功した場合に接続が確立されたと見なされます)。
Thread1を数時間実行した後、クライアントに接続する頻度に関係なく、「待機中」、「待機中」のみが出力されます。それは数時間の実行後にのみ発生するため、私はそれに困惑しています。JavaバージョンはJavaバージョン"1.7.0_07"です。Java(TM)SEランタイム環境(ビルド1.7.0_07-b10)このバージョンに既知の問題はありますか、またはどこに間違いがある可能性がありますか?エラーを再現する方法の手がかりはありますか?
手伝ってくれてありがとう。