Загрузка данных


import socket
import threading

HOST = "0.0.0.0"
PORT = 5000

clients = {}

def handle_client(conn,addr):
	nickname = conn.recv(1024).decode()

	print(f"[+] Подключился {nickname}")
	clients[conn] = nickname

	try:
		while True:
			data = conn.recv(1024)

			if not data:
				break

			message = data.decode()
			full_message = f"{nickname}: {message}"
			print(full_message)

			for client in clients:
				if client != conn:
					client.sendall(full_message.encode())
	except ConnectionResetError:
		pass

	finally:
		clients.pop(conn, None)
		conn.close()
		print(f"[-] Отключился {nickname}")

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((HOST,PORT))
server.listen()

print(f"Сервер запущен на порту {PORT}")

while True:
	conn, addr = server.accept()
	threading.Thread(
		target=handle_client,
		args=(conn,addr),
		daemon=True).start()