import socket
import threading
import time
def worker(id, s):
count = 0
s.settimeout(2.0)
while True:
try:
conn, addr = s.accept()
count += 1
conn.close()
except socket.timeout:
break
print(f"Worker {id} accepted {count} connections")
sockets = []
for i in range(4):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
s.bind(('127.0.0.1', 8080))
s.listen(1024)
sockets.append(s)
threads = []
for i, s in enumerate(sockets):
t = threading.Thread(target=worker, args=(i, s))
t.start()
threads.append(t)
for t in threads:
t.join()