java为什么待办事项已满时服务器socket连接未被拒绝?
无私的好奇心
在Java中,我在一个socket上侦听,积压1:
ServerSocket ss = new ServerSocket(4000, 1);
我在贝壳里奔跑
netcat localhost 4000
到目前为止已经有5次了
连接从不被拒绝。netcat
的每个实例都在等待,直到我的ServerSocket被销毁
Backlog长度是1-这意味着它应该只让一个传入连接排队,然后拒绝,不是吗?((我不知道队列是否包括第一个队列-现在不重要。)
我知道我可以通过关闭ServerSocket(准备好后再打开另一个)来实现这一点,但是。。。不管怎样,它不应该工作吗
我误解了吗
# 1 楼答案
正如我在上面引用的here中所写
NB待办事项长度不是1。平台可以上下调整。在早期的BSD版本中,历史上最小的待办事项长度是5。在某些平台上,它现在是50甚至500