Chyba z klientské aplikace: "Address already in use"
Při psaní skriptíku na generování zátěže na HTTP se mi po pár minutách začala vracet chyba “Address already in use”. Tento problém je hezky popsán zde i s perfektními skripty na odzkoušení (bohužel bez řešení).
Klient
import socket for i in range(50000): s=socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(('localhost',9000)) s.send("bla") s.close() if i %100==0: print i
Server
import socket as s import sys serv=s.socket(s.AF_INET, s.SOCK_STREAM) serv.bind(('',9000)) serv.listen(5) while True: (c,l) = serv.accept() while True: data=c.recv(9000) if data: print data, else: break sys.stdout.flush() c.close()
Řešením je vytvoření a zvýšení MaxUserPort dle návodu zde a vytvoření a snížení TcpTimedWaitDelay zde.