2011-10-13 54 views
2

在Python中。本地主機 我寫了剛纔讀TCP套接字原始服務器,說在端口50001 然後嘗試最大客戶端連接:python中的最大TCP連接

def rawMultiConn(threadnum = 10000): 
    g_event = threading.Event() 
    def threadfn(): 
     sockets = [socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
        for i in range(threadnum)] 
     for s in sockets: 
      s.connect(('localhost', SERVER_PORT)) 
     g_event.wait() 
     for s in sockets: s.close() 

    t = threading.Thread(target = threadfn) 
    t.start() 
    g_event.set() 
    t.join() 

,但約3000連接,發生異常: [錯誤10055]套接字上的操作可能由於系統缺乏足夠的緩衝區空間或者因爲隊列已滿

那麼,如何解決這個問題,最大的連接

回答

2

檢查框中ulimitquota和用戶運行不執行腳本。 /etc/security/limits.conf也可能包含您可能想要修改的資源限制。

嘗試運行ulimit -s unlimited

此外,ulimit -n將顯示允許打開的文件描述符/套接字的最大數量。這可能也需要修改。


一些手冊頁和參考鏈接:

+0

儘管問題沒有說明,但完整的答案還包括其他操作系統。 – OrangeDog