0

特定のポートに tcp ソケットをバインドする Java のプロジェクトがあります。

ポート X でソケット バインドの close() メソッドを呼び出すと、close() メソッドを呼び出したにもかかわらず、ポート X で新しいソケットを数秒間バインドできません。しかし、数秒後にバインドしても問題ありません。

これが起こるのは正常ですか?または、コードをもう一度確認する必要がありますか?

4

1 に答える 1

3

特定のポートで tcp ソケットをバインドします

それが問題であり、解決策はそれをしないことです。システムに選択させます。

特定のローカル ポートへのバインドは、少なくとも正気ではありません。熱狂的なネット管理者は、(a) セキュリティを強化し、(b) 簡単に実装できるという誤った信念や妄想で、アウトバウンド ポートの範囲を指定することがあります。どちらも正しくありません。

TIME_WAIT 状態は「OS が通知されるまでしばらく時間がかかる」ということではなく、TCP の重要なセキュリティ機能です。閉じたソケットは数分間残ります。特定のローカル アウトバウンド ポートにバインドしていない限り、これは機能であり、バグではありません。

于 2012-05-25T01:14:28.337 に答える