import socket def run_tcp_server(): server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) server.bind(("0.0.0.0", 10000)) server.listen(1) print("TCP server started on port 10000") print("Waiting for connections...") try: while True: conn, addr = server.accept() print(f"Connection from {addr}") with conn: while True: data = conn.recv(1024) if not data: break message = data.decode().strip() print(f"Received: '{message}'") if message.upper() == 'EXIT': conn.sendall(b"Server shutting down...") print("Received EXIT command, shutting down") return modified_message = f"ECHO: {message.upper()}" conn.sendall(modified_message.encode()) print(f"Sent response: '{modified_message}'") except KeyboardInterrupt: print("\nServer stopped by user") finally: server.close() print("Server socket closed") if __name__ == "__main__": run_tcp_server()