.\" Copyright (c) 1983, 1991 The Regents of the University of California. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" Modified Fri Jul 23 22:07:54 1993 by Rik Faith .\" Modified 950727 by aeb, following a suggestion by Urs Thuermann .\" .\" Modified Tue Oct 22 08:11:14 EDT 1996 by Eric S. Raymond .\" Modified 1998 by Andi Kleen .\" 中文版 Copyright (c) 2002 byeyear 和 www.linuxforum.net .\" .TH LISTEN 2 "23 July 1993" "BSD Man Page" "Linux Programmer's Manual" .SH NAME 名稱 listen \- listen for connections on a socket 在一個套接字上傾聽連線 .SH SYNOPSIS 概述 .B #include .sp .BI "int listen(int " s ", int " backlog ); .SH DESCRIPTION 描述 在接收連線之前,首先要使用 .BR socket (2) 建立一個套接字,然後呼叫 .BR listen 使其能夠自動接收到來的連線並且為連線佇列指定一個長度限制. 之後就可以使用 .BR accept (2) 接收連線. .B listen 呼叫僅適用於 .B SOCK_STREAM 或者 .BR SOCK_SEQPACKET 型別的套接字. .PP 引數 .I backlog 指定未完成連線佇列的最大長度.如果一個連線請求到達時未完成連線 佇列已滿,那麼客戶端將接收到錯誤 .B ECONNREFUSED. 或者,如果下層協議支援重發,那麼這個連線請求將被忽略,這樣客戶端 在重試的時候就有成功的機會. .SH NOTES 注意 在TCP套接字中 .I backlog 的含義在Linux 2.2中已經改變. 它指定了已經完成連線正等待應用程式接收的套接字佇列的長度,而不是 未完成連線的數目.未完成連線套接字佇列的最大長度可以使用 .B tcp_max_syn_backlog sysctl設定 當開啟syncookies時不存在邏輯上的最大長度,此設定將被忽略.參見 .BR tcp (7) 以獲取更多資訊. .SH "RETURN VALUE" "返回值" 函式執行成功時返回0.錯誤時返回\-1,並置相應錯誤程式碼. .I errno .SH ERRORS 錯誤 .TP .B EBADF 引數 .I s 不是合法的描述符. .TP .B ENOTSOCK 引數 .I s 不是一個套接字. .TP .B EOPNOTSUPP 套接字型別不支援 .B listen 操作. .SH "CONFORMING TO" "兼容於" Single Unix, 4.4BSD, POSIX 1003.1g. .B listen 函式呼叫最初出現於4.2BSD. .SH BUGS 勘誤 如果套接字型別是 .BR AF_INET , 並且引數 .I backlog 大於常量 .B SOMAXCONN (Linux 2.0&2.2中是128),它將被自動截斷為 .BR SOMAXCONN 的值. 有的BSD系統(以及一些BSD擴充套件)將backlog值限制為5. .SH "SEE ALSO" "參見" .BR accept (2), .BR connect (2), .BR socket (2) .SH "[中文版維護人]" .B byeyear .SH "[中文版最新更新]" .B 2002.01.27 .SH "《中國linux論壇man手冊頁翻譯計劃》:" .BI http://cmpp.linuxforum.net .SH "跋" .br 本頁面中文版由中文 man 手冊頁計劃提供。 .br 中文 man 手冊頁計劃:\fBhttps://github.com/man-pages-zh/manpages-zh\fR