Provided by: manpages-zh_1.6.4.0-1_all
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