import socket def run_udp_server(): # Создаем UDP сокет server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # Привязываем сокет к адресу и порту server.bind(('0.0.0.0', 10001)) print("🚀 UDP сервер запущен на порту 10001") print("Ожидание сообщений...") try: while True: # Получаем данные и адрес отправителя data, addr = server.recvfrom(1024) message = data.decode().strip() print(f"📨 Сообщение от {addr}: '{message}'") # Проверяем команду завершения if message.upper() == 'EXIT': print("🛑 Получена команда EXIT, завершение работы сервера") break # Модифицируем сообщение и отправляем обратно modified_message = f"🔄 UDP-ECHO: {message.upper()} [modified]" server.sendto(modified_message.encode(), addr) print(f"📤 Отправлен ответ клиенту: '{modified_message}'") except KeyboardInterrupt: print("\n🛑 Сервер остановлен пользователем") finally: server.close() print("🔒 Сокет сервера закрыт") if __name__ == "__main__": run_udp_server()