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