Java でクライアント サーバー アプリケーションを実装しましたが、問題なく動作します。アクティブな接続を確認するためにシェルで実行するnetstat -a
と、次の形式の孤立した接続がたくさんあることがわかります
TCP 127.0.0.1:54725 Sin-Host:0 LISTENING
たとえば、次のようにポート 58185 にサーバーを作成するとします。
TCP 127.0.0.1:58185 Sin-Host:0 LISTENING
クライアントがそれに接続すると、次のような2つの接続が得られます
TCP 127.0.0.1:58185 Sin-Host:0 LISTENING
TCP 127.0.0.1:58185 Sin-Host:58187 ESTABLISHED
TCP 127.0.0.1:58187 Sin-Host:58185 ESTABLISHED
クライアントとサーバーの両方を閉じると、最初の接続が残ります(つまり、LISTENING
状態ではありませんTIMED_WAIT
)
クライアントとサーバーの両方を閉じたときに最初の接続が残る理由はないと思います。これはバグですか?それは私のプログラムに実際には影響しませんが、その影響を知るために知りたいだけです。
**EDIT : How long do these orphans last**
システムを再起動したところ、孤児はすべてなくなりました。テストを繰り返したところ、アプリケーションのシャットダウン後も孤児が残り、システムの再起動後にはなくなることがわかりました。
たぶん、これはそもそもそれがうまくいかないシステム設定だと思います.?