import socket

# Создаем TCP сокет (SOCK_STREAM)
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Привязываем сокет к адресу и порту
server.bind(("0.0.0.0", 10000))
# Начинаем слушать входящие соединения (1 - максимальное количество ожидающих соединений)
server.listen(1)
print("TCP сервер запущен на порту 10000")

while True:
    # Принимаем соединение
    conn, addr = server.accept()
    print(f"Подключение от {addr}")

    # Получаем данные (максимум 1024 байта)
    data = conn.recv(1024)
    if not data:
        break
    
    # Отправляем данные обратно в верхнем регистре
    conn.sendall(data.upper())
    print(f"Отправлено: {data.upper().decode()}")

    # Закрываем соединение
    conn.close()

    # Если получена команда EXIT, завершаем работу сервера
    if data.upper() == b'EXIT':
        break

server.close()
print("TCP сервер остановлен")