加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

listen() 函数 用法

(2017-09-18 19:17:38)
标签:

c

it

socket

分类: 计算机网络

原型:int listen(int sockfd, int backlog)

功能描述:listen()函数仅被TCP类型的服务器程序调用,实现监听服务,它实现2件事情:

“1. 当socket()创建1个socket时,被假设为主动式套接字,也就是说它是一个将调用connect()发起连接请求的客户端套接字;函数listen()将套接口转换为被动式套接字,指示内核接受向此套接字的连接请求,调用此系统调用后tcp 状态机由close转换到listen。
   2.第2个参数指定了内核为此套接字排队的最大连接个数。”

listen()成功时返回0,错误时返回-1。

参数解释

sockfd -- socket()函数返回的描述符;

backlog -- 指定内核为此套接字维护的最大连接个数,包括“未完成连接队列--未完成3次握手”、“已完成连接队列--已完成3次握手,建立连接”。大多数系统缺省值为20。


int listen(int sockfd, int backlog):(服务端)

如果作为一个服务器,在调用socket()、bind()之后就会调用listen()来监听这个socket,如果客户端这时调用connect()发出连接请求,服务器端就会接收到这个请求。

 

listen函数的第一个参数即为要监听的socket描述字,第二个参数为相应socket可以排队的最大连接个数。socket()函数创建的socket默认是一个主动类型的,listen函数将socket变为被动类型的,等待客户的连接请求。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有