8 месяцев назад
История
README.md
Тестовое задание
Необходимо написать программу, которая принимает данные по UDP и отправляет их по TCP
на сервер. Перед каждым блоком отправляемых данных должны передаваться четыре
символа, которые задаются как параметр программы.
Программа должна удовлетворять следующим требованиям:
1. Код написан на языке C (не С++) для платформы Linux.
2. Сетевое взаимодействие реализовано через socket API (socket, bind, connect и т.д.).
3. Сборка программы реализована на основе Makefile.
4. Программа должна работать асинхронно: выполнение программы не должно
блокироваться из-за процесса установки соединения или приема/передачи данных.
5. При запуске программа должна принимать следующие параметры: UDP ip:port для
получения сообщений; TCP ip:port для отправки видоизмененных сообщений; путь к
лог-файлу; четыре символа для добавления к передаваемым данным. Все параметры
задаются из командной строки (argv, argc).
6. TCP соединение с сервером постоянное, но в случае разрыва должно возобновляться.
Если попытка TCP соединения закончилась сбоем, то циклически повторять ее.
7. Принимаемые UDP-сообщения могут быть длиной от 10 до 120 байт.
8. Если UDP сообщение приходит, когда TCP соединение с сервером не установлено, то
отбрасывать его.
9. При получении данных из TCP соединения отбрасывать их.
10. Записывать все важные события в лог: любые ошибки; факт установки/разрыва TCP
сессии; полученные с любой стороны данные (длина + содержимое в виде hex строки
типа TCP RX (5): 02 FA 34 38 33 ); и т. д.
Описание
Конвейеры
0 успешных
0 с ошибкой