LISTEN(2) | Linux Programmer's Manual | LISTEN(2) |
NAME 名稱¶
listen - listen for connections on a socket 在一個套接字上傾聽連接
SYNOPSIS 概述¶
#include <sys/socket.h>
int listen(int s, int backlog);
DESCRIPTION 描述¶
在接收連接之前,首先要使用 socket(2) 創建一個套接字,然後調用 listen 使其能夠自動接收到來的連接並且爲連接隊列指定一個長度限制. 之後就可以使用 accept(2) 接收連接. listen 調用僅適用於 SOCK_STREAM 或者 SOCK_SEQPACKET 類型的套接字.
參數 backlog 指定未完成連接隊列的最大長度.如果一個連接請求到達時未完成連接 隊列已滿,那麼客戶端將接收到錯誤 ECONNREFUSED. 或者,如果下層協議支持重發,那麼這個連接請求將被忽略,這樣客戶端 在重試的時候就有成功的機會.
NOTES 注意¶
在TCP套接字中 backlog 的含義在Linux 2.2中已經改變. 它指定了已經完成連接正等待應用程序接收的套接字隊列的長度,而不是 未完成連接的數目.未完成連接套接字隊列的最大長度可以使用 tcp_max_syn_backlog sysctl設置 當打開syncookies時不存在邏輯上的最大長度,此設置將被忽略.參見 tcp(7) 以獲取更多信息.
RETURN VALUE 返回值¶
函數執行成功時返回0.錯誤時返回-1,並置相應錯誤代碼. errno
ERRORS 錯誤¶
- EBADF
- 參數 s 不是合法的描述符.
- ENOTSOCK
- 參數 s 不是一個套接字.
- EOPNOTSUPP
- 套接字類型不支持 listen 操作.
CONFORMING TO 兼容於¶
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 參見¶
[中文版維護人]¶
byeyear <love_my_love@263.net >
[中文版最新更新]¶
2002.01.27
《中國linux論壇man手冊頁翻譯計劃》:¶
跋¶
本頁面中文版由中文
man 手冊頁計劃提供。
中文 man
手冊頁計劃:https://github.com/man-pages-zh/manpages-zh
23 July 1993 | BSD Man Page |