tsest_rep/udp_server.py

35 lines
1.5 KiB
Python

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()