2012-06-22 38 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