В предыдущих главах мы познакомились с основными концепциями сетевого программирования и протокола WebSocket. Теперь пришло время создать наш первый сервер поддержкой Для этого будем использовать библиотеку `asyncio`, которая является частью стандартной библиотеки Python позволяет создавать асинхронные приложения.
`asyncio` предоставляет простой и эффективный способ создания сетевых серверов, включая поддержку WebSocket. В этой главе мы создадим сервер, который будет принимать соединения отправлять сообщения клиентам.
Установка `asyncio`
Если вы используете Python 3.7 или более позднюю версию, `asyncio` уже включена в стандартную библиотеку. В противном случае, вам необходимо установить ее отдельно. Для этого можно использовать pip:
```
pip install asyncio
```
Создание простого сервера
Давайте создадим простой сервер, который будет принимать соединения и отправлять сообщения клиентам. Для этого мы будем использовать класс `asyncio.start_server`, создает сервер запускает его в отдельном потоке.
```python
import asyncio
async def handle_client(reader, writer):
Получаем адрес клиента
address = writer.get_extra_info('peername')
print(f"Новое соединение от {address}")
Отправляем сообщение клиенту
writer.write(b"Привет, клиент!")
await writer.drain()
Закрываем соединение
writer.close()
async def main():
Создаем сервер
server = await asyncio.start_server(handle_client, '127.0.0.1', 8080)
Запускаем сервер
async with server:
print("Сервер запущен на порту 8080")
await server.serve_forever()
Запускаем сервер
asyncio.run(main())
```
В этом примере мы создаем сервер, который слушает на порту 8080 и принимает соединения от клиентов. Когда клиент подключается, сервер отправляет ему сообщение "Привет, клиент!" закрывает соединение.
Запуск сервера
Чтобы запустить сервер, просто сохраните этот код в файле (например, `server.py`) и запустите его с помощью Python:
```
python server.py
```
Сервер запустится и начнет слушать на порту 8080. Вы можете проверить его работу, подключившись к нему с помощью клиента (например, браузера или утилиты `telnet`).
Конец ознакомительного фрагмента.
Текст предоставлен ООО «Литрес».
Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.
Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.