other versions
other languages
other sections
LISTEN(2) | Linux Programmer's Manual | LISTEN(2) |
名前¶
listen - ソケット(socket)上の接続を待つ書式¶
#include <sys/types.h> /* 「注意」参照 */#include <sys/socket.h> int listen(int sockfd, int backlog);
説明¶
listen() は sockfd が参照するソケットを接続待ちソケット (passive socket) として印をつける。 接続待ちソケットとは、 accept(2) を使って到着した接続要求を受け付けるのに使用されるソケットである。 sockfd 引き数は、 SOCK_STREAM 型か SOCK_SEQPACKET 型のソケットを参照するファイルディスクリプタである。 backlog 引き数は、 sockfd についての保留中の接続のキューの最大長を指定する。 キューがいっぱいの状態で接続要求が到着すると、クライアントは ECONNREFUSED というエラーを受け取る。下位層のプロトコルが再送信をサポート していれば、要求は無視され、これ以降の接続要求の再送信が成功するかもしれない。返り値¶
成功した場合にはゼロが返される。エラー時には -1 が返され、 errno が適切に設定される。エラー¶
- EADDRINUSE
- 別のソケットが既に同じポートを listen している。
- EBADF
- 引き数 sockfd は有効なディスクリプターでない。
- ENOTSOCK
- 引き数 sockfd はソケットではない。
- EOPNOTSUPP
- ソケットは listen() がサポートしている型ではない。
準拠¶
4.4BSD, POSIX.1-2001. listen() 関数は 4.2BSDで初めて実装された。注意¶
接続を受け付けるには、以下の処理が実行される。- 1.
- socket(2) でソケットを作成する。
- 2.
- bind(2) を使ってソケットにローカルアドレスを割り当てて、 他のソケットがこのソケットに connect(2) できるようにする。
- 3.
- listen() を使って、接続要求を受け付ける意志と接続要求を入れるキュー長を指定する。
- 4.
- accept(2) を使って接続を受け付ける。
例¶
bind(2) 参照。関連項目¶
accept(2), bind(2), connect(2), socket(2), socket(7)この文書について¶
この man ページは Linux man-pages プロジェクトのリリース 3.65 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。2008-11-20 | Linux |