1.5 KiB
1.5 KiB
Задача 07 — TCP-эхо-сервер на epoll (Linux, C++)
Написать сервер: принимает TCP-соединения на 127.0.0.1:<порт из argv[1]>, эхо всех
принятых байт обратно в то же соединение, обслуживает несколько клиентов одновременно,
завершается по SIGTERM/SIGINT аккуратно (exit 0).
Требования:
- мультиплексирование через
epoll(не блокирующийacceptв цикле, не поток на клиента); - сокеты неблокирующие, обработка
EAGAIN/EINTR, частичные чтения и записи; SO_REUSEADDR, bind на 127.0.0.1, прослушивание на нужном порту;- до 64 одновременных соединений, закрытие по EOF со стороны клиента;
- никаких утечек дескрипторов (тест проверяет закрытие).
Запускается как самостоятельный бинарник: ./solution <порт>.
Проверка: python3 grade.py 07 — тест сам поднимает сервер, открывает 3 соединения,
льёт данные, проверяет эхо и корректное завершение по SIGTERM.
Критерий: все ok + ревью кода (использование epoll, обработка ошибок).