LISTEN
Section: Linux Programmer's Manual (2)
Updated: 23 July 1993
Index
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
Index
- NAME 名称
-
- SYNOPSIS 概述
-
- DESCRIPTION 描述
-
- NOTES 注意
-
- RETURN VALUE 返回值
-
- ERRORS 错误
-
- CONFORMING TO 兼容于
-
- BUGS 勘误
-
- SEE ALSO 参见
-
- [中文版维护人]
-
- [中文版最新更新]
-
- 《中国linux论坛man手册页翻译计划》:
-
This document was created by
man2html,
using the manual pages.
Time: GMT, January 14, 2004