我正在做以下事情:
- 打开一个监听 TCP 套接字。
- 将 BACKLOG 设置为 10
- 打开 50 个连接套接字(使用非阻塞连接)
- 轮询侦听套接字并接受连接
- 能够传输任何数据的连接已关闭
我看到的是所有 50 个连接都成功,但是,侦听套接字上的 POLLIN 仅发出约 30 次信号。这意味着只接受 30 个连接。
当我运行 netstat 时,我没有看到挂起的 ESTABLISHED 连接。有几个连接挂在 TIME_WAIT 状态,但这似乎无关紧要。
以上是在 Linux 上观察到的,然而,类似的行为似乎也发生在 FreeBSD 和 NetBSD 上。
有没有人有这种事情的经验?