man 2 listen
Posted 史昊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了man 2 listen相关的知识,希望对你有一定的参考价值。
摘要
#include <sys/types.h> /*Portable consideration*/ #include <sys/socket.h> int listen(int sockfd,int backlog)
描述
listen()把套结字sockfd标记为被动套结字,也就是说这个套结字将通过accept()接受请求。
参数sockfd一个文件描述符,指向类型为SOCK_STREAM或者SOCK_SEQPACKET的套结字。
参数backlog定义了排队等待连接sockfd的最大长度。如果一个连接请求到来时,队列已满,那么客户端将会受到错误提示ECONNREFUSED,如果底层的协议支持重发送,那么请求会被忽略,稍后的连接请求可能会成功。
返回值
成功执行返回0,出错返回-1并且相应的设置errno。
注意
接受一个连接将会执行下面的步骤:
1,创建一个套结字socket(int domain, int type, int protocol)
2,绑定套结字到本地地址bind(int sockfd,const struct sockaddr *addr,socklen_t len),那么其他套结字就可以通过connect连接到该套结字
3,准备接受到来的请求,并且设置最大请求连接队列长度listen(int sockfd,int backlog)
4,接受请求连接accept(int sockfd,struct sockaddr *addr, socklen_t *len)
POSIX.1-2001不要求包含头文件<sys/types.h>, 这个头文件在linux系统上是不要求的,然而一些历史版本(BSD)实现却要求该头文件,所以可移植的应用程序最要包含该头文件。
以上是关于man 2 listen的主要内容,如果未能解决你的问题,请参考以下文章
Android 调用组件 w/listener 或让 viewmodel 调用组件与片段通信
JSF:-DataType 和 Action Listener 的问题