2013-08-06 10 views

答えて

14
#include <sys/socket.h> 

int listen (int socket, int backlog); 

バックログ引数は、実装がソケットの聞くキューに未処理の接続の数を制限するために使用しなければならない実装にヒントを提供します。実装により、バックログに制限が課され、指定された値が黙って減少する可能性があります。通常、バックログ引数の値が大きいほど、リスニングキューの長さは長くなります。実装は、<sys/socket.h>で定義されたSOMAXCONNまでのバックログの値をサポートしなければならない。

listen()は、0のバックログ引数がソケットに可能0

のバックログ引数値で呼び出されたかのように機能の動作、0未満であるバックログ引数値で呼び出された場合接続を受け入れます。この場合、リスニングキューの長さは実装定義の最小値に設定されます。

here

+2

でそれについての詳細を読むことができますが、私はそれがソケット優秀MAX接続用の短いだと思います。私は間違っているかもしれませんが、とにかく私が覚えておくのに役立ちます! :-) – rhgrant10

+3

他のBSDソケットと一貫性があり、より一貫しています#defines、SOcket最大CONNectionsまたはSOcket最大接続数 – uchuugaka

+0

引用符で囲まれたテキストには引用形式を使用してください。 – EJP

7

単純に言えば、バックログはソケットに入れたいキューの最大接続数です。このキューはクライアントからの接続を処理できるように、そこにあります。する行。より多くのクライアントがバックログ以上にサーバーに接続しようとすると、それらの接続は破棄されます。

SOMAXCONNは、listen()に許可されている最大番号を定義しています(128)。

あなたは簡単にSOMAXCONNが何を意味するのかを覚えておく必要があるかもしれない人のためにman page

+0

これらの接続はWindowsによって削除されます。それらは他のプラットフォームでは無視され、クライアントは何度か再試行し、まだ応答がない場合はタイムアウトします。 – EJP

関連する問題