# обработка нескольких соединений одновременно, процессы и потоки import socket import threading import multiprocessing import os def process_request(conn, addr): print(f"connected client: {addr}") with conn: while True: data = conn.recv(1024) if not data: break print(data.decode("utf8")) def worker(sock): while True: conn, addr = sock.accept() print(f"pid {os.getpid()}") th = threading.Thread(target=process_request, args=(conn, addr)) th.start() with socket.socket() as sock: sock.bind(("", 10001)) sock.listen() workers_count = 5 workers_list = [ multiprocessing.Process(target=worker, args=(sock,)) for _ in range(workers_count) ] for w in workers_list: w.start() for w in workers_list: w.join()