Provided by: manpages-zh_1.6.3.6-1_all bug

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 參見

       accept(2), connect(2), socket(2)

[中文版維護人]

       byeyear <love_my_love@263.net >

[中文版最新更新]

       2002.01.27

《中國linux論壇man手冊頁翻譯計劃》:

       http://cmpp.linuxforum.net

       本頁面中文版由中文 man 手冊頁計劃提供。
       中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh