main/03_networking/tcp_server.py

31 lines
1.2 KiB
Python

import socket
HOST, PORT = '0.0.0.0', 65432
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as server:
server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server.bind((HOST, PORT))
server.listen(1)
print(f"🟢 TCP сервер запущен на {HOST}:{PORT}")
conn, addr = server.accept()
with conn:
print(f"🔗 Подключён клиент: {addr}")
while True:
data = conn.recv(1024)
if not data: # Клиент закрыл соединение
print("🔌 Клиент разорвал соединение.")
break
msg = data.decode('utf-8').strip()
print(f"📥 Получено: {msg}")
if msg.lower() == 'exit':
print("👋 Получена команда exit. Завершаю работу сервера.")
break
# Преобразуем в верхний регистр и отправляем обратно
response = f"SERVER: {msg.upper()}\n"
conn.sendall(response.encode('utf-8'))
print("✅ TCP сервер остановлен.")