tcp сервер, который распознаёт заданный формат данных и отображает его в требуемом формате
Необходимо сделать tcp сервер, который распознаёт заданный формат данных и отображает его в требуемом формате.
Обязательна запись данных во внешний файл.
Интерфейс и способ отображения на выбор разработчика.
Формат данных BBBBxNNxHH:MM:SS.zhqxGGCR
Где BBBB - номер участника
x - пробельный символ
NN - id канала
HH - Часы
MM - минуты
SS - секунды
zhq - десятые сотые тысячные
GG - номер группы
CR - «возврат каретки» (закрывающий символ)
Пример данных: 0002 C1 01:13:02.877 00[CR]
Выводим
«спортсмен, нагрудный номер BBBB прошёл отсечку NN в «время»" до десятых, сотые и тысячные отсекаются. Только для группы 00.
Для остальных групп данные не отображаются, но пишутся в лог полностью.
Язык Python, версия не ниже 3.2 Передача данных должна поддерживаться с помощью telnet клиента.
Выполнял задание на Mac OS, Python 3.9, PyQt5 и стандартных библиотеках.
-
Установить виртуальное окружение и пакеты из requirements.txt
-
Проверить/изменить настройки в settings.py:
- IP адреса и номер порта, название файлов для логов
- Запустить сервер:
python main.py
Запустить параллельно с сервером тестового клиента
python test_gui_client.py
или через telnet
В задании не указано на обработку ошибок.
- принял решение сделать обработку и возвращать статус OK, если все в порядке, в противном случае - KO с сообщением о типе ошибки.
Так же для удобства в дополнительном поле вывожу содержимое сохраненного файла с полученными данными, только в обратном порядке, чтобы не прокручивая видеть последнее.
Не оптимальная реализация запуска сервера в фоновом потоке - при наличии свободного времени переделаю.