Есть TCP\IP server в основе работы которого — блокирующий select.
Вопрос, каким образом корректно завершить его работу.
Корректно, означает, что все данные, которые должны быть отправлены — отправляются,
а те, которые должны быть получены — получаются.
На текущий момент есть следующие варианты:
1. Классика жанра по Стивенсу — использовать дополнительный handler stdin в select.
Насколько мне известно — Винда в select ожидает только SOCKET
2. Создание доп. порта, на который будут приходить данные, если ожидается завершение работы server
3. Использовать неблокирующий select, вылетающий по time — out. Не хотелось бы.