开发者

Maximum number of TCP connections in Python?

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开发者_JAVA百科:
            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?


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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜