.\" 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