3laba/cod/udp_server.py
2026-05-08 11:24:20 +03:00

42 lines
1.5 KiB
Python

# udp_server.py
import socket
import logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(message)s')
def run_udp_server():
"""UDP сервер без установки соединения"""
HOST = '127.0.0.1'
PORT = 10001
# Создаем UDP сокет
with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as server_socket:
server_socket.bind((HOST, PORT))
logging.info(f"🚀 UDP сервер запущен на {HOST}:{PORT}")
logging.info("UDP не требует установки соединения, просто ждет данные...")
try:
while True:
# Получаем данные и адрес отправителя
data, client_address = server_socket.recvfrom(1024)
received_text = data.decode('utf-8')
logging.info(f"📥 Получено от {client_address}: {received_text}")
# Отправляем обратно в верхнем регистре
modified_data = data.upper()
server_socket.sendto(modified_data, client_address)
logging.info(f"📤 Отправлено {client_address}: {modified_data.decode('utf-8')}")
if modified_data == b'EXIT':
logging.info("Получена команда выхода")
break
except KeyboardInterrupt:
logging.info("\nСервер остановлен")
if __name__ == '__main__':
run_udp_server()