0
我在Linux上打开SSL连接到993.我的程序崩溃了大约993个打开的套接字。我记得有一些关于TCP编程的文档讨论了这种限制。我的问题是:我记得一些正确的东西,如果是的话,这是如何工作的?或者我正在制作一些东西。能否有比端口号更多的TCP套接字?
我在Linux上打开SSL连接到993.我的程序崩溃了大约993个打开的套接字。我记得有一些关于TCP编程的文档讨论了这种限制。我的问题是:我记得一些正确的东西,如果是的话,这是如何工作的?或者我正在制作一些东西。能否有比端口号更多的TCP套接字?
同时打开的描述符或套接字的数量,或传递给调用的描述符的数量(如一边的select
或poll
)和另一边的特定端口号之间没有关系。
您看到一个值993最有可能是因为它是1024减去系统之前打开的一些其他完全不相关的描述符/套接字。
所有讨论的限值适用于单一进程中,所以你应该能够想出解决办法,例如使用strace
最有可能你已经达到打开文件的限制。通常是1024.尝试增加它:'ulimit -n 4096'。 –
已经做到了。 – djechlin
您是否使用'select()'来处理套接字活动?这也有1024 FD的限制。 – duskwuff