0

我正在做以下事情:

  1. 打开一个监听 TCP 套接字。
  2. 将 BACKLOG 设置为 10
  3. 打开 50 个连接套接字(使用非阻塞连接)
  4. 轮询侦听套接字并接受连接
  5. 能够传输任何数据的连接已关闭

我看到的是所有 50 个连接都成功,但是,侦听套接字上的 POLLIN 仅发出约 30 次信号。这意味着只接受 30 个连接。

当我运行 netstat 时,我没有看到挂起的 ESTABLISHED 连接。有几个连接挂在 TIME_WAIT 状态,但这似乎无关紧要。

以上是在 Linux 上观察到的,然而,类似的行为似乎也发生在 FreeBSD 和 NetBSD 上。

有没有人有这种事情的经验?

4

1 回答 1

2

我有带外的解释。对它感兴趣的人可以在这里阅读:

http://www.evanjones.ca/tcp-stuck-connection-mystery.html

于 2012-06-01T14:39:07.813 回答