Maximum number of TCP connections in Python?

烂漫一生 提交于 2019-12-07 17:58:29

问题


I am working in Python on localhost. I wrote a raw server just read TCP socket, say in port 50001.

Then I tried max client connections:

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()

but after about 3000 connections, exception occurs:

[Errno 10055] An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full

So how can I resolve it and max the connection?


回答1:


Check the ulimit and quota for the box and the user running the script. /etc/security/limits.conf may also contain resource restrictions that you might want to modify.

Try running ulimit -s unlimited.

Also, ulimit -n will show the max number of open file descriptors/sockets allowed. That may need modification as well.


Some man pages and reference links:

  • ulimit
  • quota
  • limits.conf
  • lsof


来源:https://stackoverflow.com/questions/7748898/maximum-number-of-tcp-connections-in-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!