Создание клиент-серверного приложения на Python обычно включает в себя использование библиотек для работы с сокетами. Ниже приведен пример простого клиент-серверного приложения.
Пример сервера:
import socket
# Создаем сокет
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Привязываем сокет к адресу и порту
server_address = ('localhost', 12345)
server_socket.bind(server_address)
# Начинаем прослушивание входящих подключений
server_socket.listen(1)
print('Сервер слушает на {}:{}'.format(*server_address))
while True:
# Ждем подключения
print('Ожидание подключения...')
client_socket, client_address = server_socket.accept()
print('Принято подключение от', client_address)
# Читаем данные от клиента
data = client_socket.recv(1024)
print('Получены данные:', data.decode('utf-8'))
# Отправляем ответ клиенту
message = 'Привет, клиент!'
client_socket.sendall(message.encode('utf-8'))
# Закрываем соединение с клиентом
client_socket.close()
Пример клиента:
import socket
# Создаем сокет
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Подключаемся к серверу
server_address = ('localhost', 12345)
client_socket.connect(server_address)
print('Подключено к серверу', server_address)
# Отправляем данные на сервер
message = 'Привет, сервер!'
client_socket.sendall(message.encode('utf-8'))
# Читаем ответ от сервера
data = client_socket.recv(1024)
print('Получен ответ от сервера:', data.decode('utf-8'))
# Закрываем соединение
client_socket.close()
Обратите внимание, что в приведенных примерах сервер ожидает подключения от одного клиента за раз. Для обработки нескольких клиентов одновременно, обычно используются многозадачные подходы, такие как многопоточность или асинхронное программирование.
Автор: Евгений Морковин
0 комментариев