Unix-system-calls-listen

提供:Dev Guides
移動先:案内検索

[top]#

[[File:]]

[[File:]]

|Web |This Site

  • 初心者向けのUnix *
  • 高度なUnix *

選択した読書

Copyright©2014 by finddevguides

  Home     References     Discussion Forums     About TP  

listen()-Unix、Linuxシステムコール

[[File:]] image :http://www.finddevguides.com/images/next.gif [next] image:http://www.finddevguides.com/add- this.gif [AddThisソーシャルブックマークボタン]

広告

NAME

listen-ソケット上の接続をリッスンします

概要

  • #include <sys/socket.h> *
*int listen(int* __sockfd __ **、int * *__backlog __* *); **

説明

接続を受け入れるには、まず socket (2)でソケットを作成し、着信接続を受け入れる意思と着信接続のキュー制限を listen ()で指定し、次に接続を accept (で受け入れます2)。 listen ()呼び出しは、 SOCK_STREAM または SOCK_SEQPACKET タイプのソケットにのみ適用されます。

_backlog_パラメーターは、保留中の接続のキューの最大長を定義します。 接続要求がキューいっぱいで到着した場合、クライアントは ECONNREFUSED を示すエラーを受信するか、基礎となるプロトコルが再送信をサポートする場合、再試行が成功するように要求が無視される場合があります。

ノート

TCPソケットの_backlog_パラメーターの動作は、Linux 2.2で変更されました。 不完全な接続要求の数ではなく、受け入れを待機している_completely_確立されたソケットのキューの長さを指定するようになりました。 tcp_max_syn_backlog sysctlを使用して、不完全なソケットのキューの最大長を設定できます。 syncookiesが有効な場合、論理的な最大長はなく、このsysctl設定は無視されます。 詳細については、 tcp (7)を参照してください。

返り値

成功すると、ゼロが返されます。 エラーの場合、-1が返され、_errno_が適切に設定されます。

エラー

Tag

説明

*EADDRINUSE*

別のソケットがすでに同じポートでリッスンしています。

*EBADF*

引数_sockfd_は有効な記述子ではありません。

*ENOTSOCK*

引数_sockfd_はソケットではありません。

*EOPNOTSUPP*

ソケットは listen ()操作をサポートするタイプではありません。

準拠

4.4BSD、POSIX.1-2001。 listen ()関数呼び出しは4.2BSDではじめて登場しました。

BUGS

ソケットのタイプが AF_INET であり、_backlog_引数が定数 SOMAXCONN (Linux 2.0および2.2では128)より大きい場合、暗黙的に SOMAXCONN に切り捨てられます。

関連項目

[[File:]] image :http://www.finddevguides.com/images/next.gif [next] [[File:]]

広告

  
Advertisements