2012-06-22 39 views
0

我在Linux上打开SSL连接到993.我的程序崩溃了大约993个打开的套接字。我记得有一些关于TCP编程的文档讨论了这种限制。我的问题是:我记得一些正确的东西,如果是的话,这是如何工作的?或者我正在制作一些东西。能否有比端口号更多的TCP套接字?

+0

最有可能你已经达到打开文件的限制。通常是1024.尝试增加它:'ulimit -n 4096'。 –

+0

已经做到了。 – djechlin

+0

您是否使用'select()'来处理套接字活动?这也有1024 FD的限制。 – duskwuff

回答

0

同时打开的描述符或套接字的数量,或传递给调用的描述符的数量(如一边的selectpoll)和另一边的特定端口号之间没有关系。

您看到一个值993最有可能是因为它是1024减去系统之前打开的一些其他完全不相关的描述符/套接字。

所有讨论的限值适用于单一进程中,所以你应该能够想出解决办法,例如使用strace