我正在本地 Linux 服务器上进行测试,服务器和客户端都在同一台服务器上。在大约 1024 个连接之后,在我的代码中,我连接的地方被拒绝连接。起初我认为这是 select 的 fd_set_max 限制为 1024,并将服务器更改为轮询而不是 select,但我仍然没有超过这个数字。我的 ulimit -n 设置为 2048,我监视服务器上的 lsof 它达到大约 1033(不确定这是否是确切数字)并失败。非常感谢任何帮助。
最佳答案
如果您的连接速度比您的服务器调用 accept()
的速度快,则等待连接的队列可能已满。最大队列长度由服务器中 listen()
的第二个参数设置,或者 sysctl net.core.somaxconn
的值(通常为 128)如果较低。
关于c - 为什么在 1024 个连接后我的连接被拒绝?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/923990/