Тестовый проект клиента/сервера с использованием модуля конкурентного программирования Asyncio.
Проект состоит из двух скриптов: клиента и сервера.
- Запускается и находится в режиме ожидания.
- Поддерживат подлючение произвольного количества клиентов.
- Через определенный интервал времени (задается в server.env) рассылает всем клиента свой статус и время работы.
- Получает команды от клиентов и в зависимости от команды высылает ответ и монотонно возрастающий список.
- Пишет логи в файл server.log.
- Подключается к серверу (адрес хоста и порт задаются в client.env).
- Через определенный интервал времени (задается в client.env) посылает серверу запрос.
- Подучает от сервера ответ на запрос, а также статус сервера.
- Пишет логи в файл client.log.
(Примечание: команды могут отличаться в зависимости от операционной системы).
- Клонировать репозиторий:
git clone https://github.com/Kutaraev/Asyncio-PING-PONG.git
- Сделать рабочей папку проекта:
cd Asyncio-PING-PONG/
- Создать виртуальное окружение:
python3 -m venv venv
- Сделать активным виртуальное окружение:
source venv/bin/activate
- Установить необходимые для работы проекта зависимости:
pip install -r requirements.txt
- Запустить сервер:
python3 server.py
- Запустить клиент в отдельном терминале:
python3 client.py
Находятся в файлах server.py и client.py для сервера и клиента соответственно.
- UPTIME_FREQUENCY - частота рассылки статуса сервера (в секундах).
- HOST - IP-адрес сервера.
- PORT - Номер порта сервера.
- CLIENT_COMMAND_FREQUENCY - частота отправки команд сереру в секундах.
- HOST - IP-адрес сервера.
- PORT - Номер порта сервера.
- Telegram: @artem_kutaraev
- Email: [email protected]