35 lines
1.5 KiB
Python
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() |