forked from fa-python-network/2_threaded_server
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.py
30 lines (25 loc) · 1.56 KB
/
server.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import socket # Импортируем библиотеку сокетов
import threading # Импортируем библиотеку для работы с потоками
# Создаем новый сокет
sock = socket.socket()
# Привязываем сокет к адресу и порту
sock.bind(('', 9090))
# Устанавливаем режим прослушивания для входящих соединений
sock.listen(5) # Позволяем соединения, ожидающие до 5 клиентов
# Функция для обработки работы с клиентом
def handle_client(conn, addr):
print(f'Соединение с {addr} установлено.')
msg = ''
while True:
data = conn.recv(1024) # Получаем данные от клиента
if not data:
break # Если данные отсутствуют, выходим из цикла
msg += data.decode() # Декодируем и добавляем к сообщению
conn.send(data) # Отправляем обратно клиенту
print(f'Закрытие соединения с {addr}. Сообщение: {msg}')
conn.close() # Закрываем соединение
# Основной цикл для получения соединений
while True:
conn, addr = sock.accept() # Ожидаем подключения
# Создаем новый поток для работы с клиентом
threading.Thread(target=handle_client, args=(conn, addr)).start()