‘壹’ linux 下listen调用的backlog设为0,有何意义
listen的backlog参数指定的是已经三次握手完成,达到了established状态但是等待accept的队列的容量。当这个容量超过上限的时候服务器端便不处理客户端的三次握手了。这个队列的容量当然不是楼主所说的并发连接数。
但是lisen的再后一道程序便是accept了。如果你想要的是在tcp并发连接数量超过上限的时候服务器不再处理了三次握手那么只有两种办法:
1.关闭listen的socket
2.自己修改tcp协议栈的实现,当然这个就比较麻烦了。
用iptables防火墙来限制tcp连接,
如下,限制用户的tcp连接数为50
iptables -I INPUT-p tcp -m connlimit --connlimit-above 50 -j REJECT