From 9d8eb0757012ed1bc6c85dee927894b9be12cabc Mon Sep 17 00:00:00 2001 From: MuedeHydra Date: Mon, 24 Nov 2025 19:11:32 +0100 Subject: [PATCH] fix server --- server.py | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/server.py b/server.py index b6ed861..d2820bb 100644 --- a/server.py +++ b/server.py @@ -33,24 +33,33 @@ def handle_connection(conn): connections.remove(conn) break - -if __name__ == "__main__": +def handle_new_connections(): hostname = socket.gethostname() IPAddr = socket.gethostbyname(hostname) - - with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: - try: + try: + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.bind((HOST, PORT)) print(f"Server {hostname} on ip {IPAddr}") while run: conn=Connection() s.listen() - conn.sock, conn.addr = s.accept() - connections.append(conn) - threading.Thread(target=handle_connection, args=(conn,)).start() - except KeyboardInterrupt: - run = False - print("Shutdown server") - finally: - s.close() + ready_to_read, _, _ = select.select([s], [], [], 1.0) + if ready_to_read: + conn.sock, conn.addr = s.accept() + connections.append(conn) + threading.Thread(target=handle_connection, args=(conn,)).start() + finally: + s.close() + + +if __name__ == "__main__": + threading.Thread(target=handle_new_connections).start() + try: + print("Press Enter or CTRL + C to stop server") + input() + except KeyboardInterrupt: + pass + finally: + run = False + print("Shutdown server")