標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
XPG4.2 |
両方 |
#define _XOPEN_SOURCE_EXTENDED 1
#include <sys/socket.h>
int listen(int socket, int backlog);
#define _OE_SOCKETS
#include <sys/socket.h>
int listen(int socket, int backlog);
listen() 呼び出しは、クライアント接続要求を受け取るための作動可能状態を示します。アクティブ・ソケットをパッシブ・ソケットに変換します。一度呼び出されると、接続要求を開始するために、socket をアクティブ・ソケットとして使用することは決してできません。listen() の呼び出しは、サーバーが接続を受け取るための 4 ステップのうちの 3 つ目です。ストリーム・ソケットを socket() で割り振った後、かつ名前を socket へ bind() で結合した後、呼び出されます。accept() を呼び出す前に、それを呼び出さなければなりません。
backlog が 0 より小さい場合、backlog は 0 に設定されます。backlog が SOMAXCONN ( sys/socket.h で定義された) よりも大きい場合、backlog は SOMAXCONN に設定されます。
AF_UNIX ソケットの場合は、この値は変数であり、アプリケーションで 設定できます。AF_INET および AF_INET6 ソケットの場合は、その値はインストール済みの TCP/IP で可能な接続の最大数を超えることはできません。
C++ の特殊な動作: C++ でこの関数を使用するには、_XOPEN_SOURCE_EXTENDED 1 フィーチャー・テスト・マクロを 使用する必要があります。
正常に実行された場合、listen() は 0 を戻します。