C++ socket listen() 第二个参数的问题

C++socket中listen函数的第二个参数代表连接请求队列这个值是不是越大越好呢?我经过反复测试发现1和5没什么区别求解惑这个参数到底会影响什么呢?求大神指点~... C++ socket 中 listen函数的第二个参数代表连接请求队列
这个值 是不是越大越好呢?
我经过反复测试 发现1和5没什么区别
求解惑 这个参数到底会影响什么呢? 求大神指点~
展开
 我来答
changlejushide
2018-01-02 · TA获得超过794个赞
知道小有建树答主
回答量:536
采纳率:0%
帮助的人:206万
展开全部

网页链接

The  behavior  of  the  backlog  argument on TCP sockets changed with Linux 2.2.  Now it specifies the queue length for completely established sockets waiting to be accepted,  instead  of  the  number  of  incomplete  connection  requests.   The  maximum  length  of  the  queue  for  incomplete  sockets   can   be   set   using  /proc/sys/net/ipv4/tcp_max_syn_backlog.   When  syncookies are enabled there is no logical maximum length and this setting is ignored.  See tcp(7) for more information.

在linux 2.2以后  listen的第二个参数。指的是在完成TCP三次握手后的队列。即在系统accept之前的队列。已经完成的队列。如果系统没有调用accpet把这个队列的数据拿出来。一旦这个队列满了。未连接队列的请求过不来。导致未连接队列里的请求会超时或者拒绝。如果系统调用了accpet队列接受请求数据。那么就会把接受到请求移除已完成队列。 这时候已完成队列又可以使用了。

最后 说了如果开启了syncookies  忽略listen的第二个参数。 

V哥在世
2014-11-25 · 超过31用户采纳过TA的回答
知道答主
回答量:116
采纳率:0%
帮助的人:55.7万
展开全部
确实没多大区别,不过好像越大越好,但是不能超过限制。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f1929ec
2014-11-25
知道答主
回答量:10
采纳率:0%
帮助的人:3.3万
展开全部
影响可连接数!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9745ce8
推荐于2017-09-04 · TA获得超过210个赞
知道小有建树答主
回答量:272
采纳率:40%
帮助的人:51.3万
展开全部
监听函数listen()的第二个参数backlog是用来确定监听连接队列的最大个数的,这样就确定了服务端能够连接的客户端最大个数,不是越大越好。
更多追问追答
追问
如果设置成5 是不是就是说只能支持5个客户端进行连接?
追答
是的,表示最多只能支持5个链接,当然也可以是4个3个等
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式