import socket def run_udp_server(): server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) server.bind(('0.0.0.0', 10001)) print("UDP server started on port 10001") print("Waiting for messages...") try: while True: data, addr = server.recvfrom(1024) message = data.decode().strip() print(f"Message from {addr}: '{message}'") if message.upper() == 'EXIT': print("Received EXIT command, shutting down") break modified_message = f"UDP-ECHO: {message.upper()} [modified]" server.sendto(modified_message.encode(), addr) print(f"Sent response to client: '{modified_message}'") except KeyboardInterrupt: print("\nServer stopped by user") finally: server.close() print("Server socket closed") if __name__ == "__main__": run_udp_server()