Ich arbeite in Python auf localhost. Ich schrieb einen rohen Server nur lesen TCP-Socket, sagen wir in Port 50001.
Dann habe ich versucht, maximale Client-Verbindungen herzustellen:
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()
aber nach etwa 3000 Verbindungen tritt eine Ausnahme auf:
[Errno 10055] Eine Operation auf einem Socket konnte nicht durchgeführt werden, weil das System nicht genügend Pufferplatz hatte oder weil eine Warteschlange voll war
Wie kann ich das Problem beheben und die Verbindung wiederherstellen?