Provided by:
manpages-zh_1.5.1-2_all 
NAMEW稱
listen - listen for connections on a socket 在一荇M接字上傾聽連接
SYNOPSISz
#include <sys/socket.h>
int listen(int s, int backlog);
DESCRIPTIONyz
在接收連接之前,漸n使用 socket(2) 創建一荇M接字,然後調用 listen
使其能夠自動接收到來的連接並且為連接隊列指定一茠曮蚳. 之後就可以使用
accept(2) 接收連接. listen 調用僅適用於 SOCK_STREAM 或者
SOCK_SEQPACKET 類型的套接字.
參數 backlog 指定未完成連接隊列的最大長度.如果一-
茬s接請求到達時未完成連接 隊列已滿,那麼客戶端將接收到錯誤 ECONNREFUSED.
或者,如果下層協議支持奏o,那麼這茬s接請求將被忽略,這樣客戶端 在姜晡漁-
埭N有成左瑣鷛|.
NOTES`N
在TCP套接字中 backlog 的含義在Linux 2.2中已經改變.
它指定了已經完成連接正等待應用程式接收的套接字隊列的長度,而不是
未完成連接的數目.未完成連接套接字隊列的最大長度可以使用
tcp_max_syn_backlog sysctl設置
當打開syncookies時不存在邏輯上的最大長度,此設置將被忽略.參見 tcp(7)
以獲取更多信息.
RETURN VALUE^
函數執行成幼阞藀^0.錯誤時返回-1,並置相應錯誤代碼. errno
ERRORS~
EBADF 參數 s 不是合法的描z符.
ENOTSOCK
參數 s 不是一荇M接字.
EOPNOTSUPP
套接字類型不支持 listen 操作.
CONFORMING TOe於
Single Unix, 4.4BSD, POSIX 1003.1g. listen 函數調用最初出現於4.2BSD.
BUGS~
如果套接字類型是 AF_INET, 並且參數 backlog 大於常量 SOMAXCONN (Linux
2.0&2.2中是128),它將被自動截斷為 SOMAXCONN 的.
有的BSD系統(以及一些BSD擴展)將backlog謈5.
SEE ALSO見
accept(2), connect(2), socket(2)
[]
byeyear <love_my_love@263.net >
[]
2002.01.27
mlinuxan:
http://cmpp.linuxforum.net