リスニングソケットのバックログパラメータに何を使用するかをどのように決定する必要がありますか?単純に非常に大きな数を指定するのは問題ですか?
33989 次
3 に答える
35
Winsock Programmer's FAQには、これに対する非常に長い回答があります。標準設定と、NT 4.0 のホットフィックスで追加された動的バックログ機能について詳しく説明します。
于 2008-09-22T13:56:26.720 に答える
4
短いキューを使用する特別な理由がない限り、SOMAXCONN を使用します。
キューに新しい接続用のスペースがない場合、RST は送信されず、クライアントは SYN を再送信して自動的に接続を試行し続けることに注意してください。
また、 backlog 引数は、ソケットの実装によって異なる意味を持つ場合があります。
- ほとんどの場合、半分開いている接続キューのサイズを意味し、完了した接続キューのサイズを意味する場合もあります。
- 多くの実装では、backlog 引数を乗算して、異なるキューの長さを生成します。
- 大きすぎる値が指定された場合、すべての実装はいずれにせよ、暗黙のうちに値を最大キュー長に切り捨てます。
于 2008-09-22T14:03:42.943 に答える
1
ドキュメントから:
SOMAXCONNのバックログの値は、ソケットを担当する基礎となるサービスプロバイダーに、保留中の接続のキューの長さを妥当な最大値に設定するように指示する特別な定数です。
于 2008-09-22T13:37:06.423 に答える