C(Linux Ubuntu)のソケットプログラミングでsomaxconnについて何も分かりませんでした。私はいくつかのサイトを検索しましたが、それらはすべて私を助けませんでした。CソケットプログラミングでSOMAXCONNは何を意味しますか?
これは最大回数を同時に聴くことを意味しますか?接続されたソケットの?
C(Linux Ubuntu)のソケットプログラミングでsomaxconnについて何も分かりませんでした。私はいくつかのサイトを検索しましたが、それらはすべて私を助けませんでした。CソケットプログラミングでSOMAXCONNは何を意味しますか?
これは最大回数を同時に聴くことを意味しますか?接続されたソケットの?
#include <sys/socket.h>
int listen (int socket, int backlog);
バックログ引数は、実装がソケットの聞くキューに未処理の接続の数を制限するために使用しなければならない実装にヒントを提供します。実装により、バックログに制限が課され、指定された値が黙って減少する可能性があります。通常、バックログ引数の値が大きいほど、リスニングキューの長さは長くなります。実装は、
<sys/socket.h>
で定義されたSOMAXCONN
までのバックログの値をサポートしなければならない。
listen()
は、0のバックログ引数がソケットに可能0のバックログ引数値で呼び出されたかのように機能の動作、0未満であるバックログ引数値で呼び出された場合接続を受け入れます。この場合、リスニングキューの長さは実装定義の最小値に設定されます。
here。
単純に言えば、バックログはソケットに入れたいキューの最大接続数です。このキューはクライアントからの接続を処理できるように、そこにあります。する行。より多くのクライアントがバックログ以上にサーバーに接続しようとすると、それらの接続は破棄されます。
SOMAXCONN
は、listen()
に許可されている最大番号を定義しています(128
)。
あなたは簡単にSOMAXCONNが何を意味するのかを覚えておく必要があるかもしれない人のためにman page
これらの接続はWindowsによって削除されます。それらは他のプラットフォームでは無視され、クライアントは何度か再試行し、まだ応答がない場合はタイムアウトします。 – EJP
でそれについての詳細を読むことができますが、私はそれがソケット優秀MAX接続用の短いだと思います。私は間違っているかもしれませんが、とにかく私が覚えておくのに役立ちます! :-) – rhgrant10
他のBSDソケットと一貫性があり、より一貫しています#defines、SOcket最大CONNectionsまたはSOcket最大接続数 – uchuugaka
引用符で囲まれたテキストには引用形式を使用してください。 – EJP