listen函数介绍

文章目录

1 listen函数介绍

#include <sys/types.h> /* See NOTES */
#include <sys/socket.h>
int listen(int sockfd, int backlog);

/*
sockfd:
	socket文件描述符
backlog:
	在Linux 系统中,它是指排队等待建立3次握手队列长度
*/

查看系统默认backlog:
cat /proc/sys/net/ipv4/tcp_max_syn_backlog

改变系统限制的backlog 大小:
vim /etc/sysctl.conf

最后添加:
net.core.somaxconn = 1024 net.ipv4.tcp_max_syn_backlog = 1024

保存,然后执行:
sysctl -p

典型的服务器程序可以同时服务于多个客户端,当有客户端发起连接时,服务器调用的accept()返回并接受这个连接,如果有大量的客户端发起连接而服务器来不及处理,尚未accept的客户端就处于连接等待状态,listen()声明sockfd处于监听状态,并且最多允许有backlog个客户端处于连接待状态,如果接收到更多的连接请求就忽略。listen()成功返回0,失败返回-1。


参考资料:

  1. C/C++从入门到精通-高级程序员之路【奇牛学院】
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值