Я пишу простую программу, которая делает несколько подключений к различным серверам для проверки статуса. Все эти соединения построены по требованию; одновременно может быть создано до 10 подключений. Мне не нравится идея one-thread-per-socket, поэтому я сделал все эти клиентские сокеты Non-Blocking и бросил их в пул select().
Он отлично работал, пока мой клиент не жаловался, что время ожидания слишком велико, прежде чем они смогут получить отчет об ошибке, когда целевые серверы перестали отвечать.
Я проверил несколько тем на форуме. Некоторые предположили, что можно использовать сигнал тревоги() или установить тайм-аут в вызове функции select(). Но я имею дело с несколькими соединениями, а не с одним. Когда происходит сигнал тайм-аута процесса, я не могу отличить соединение с таймаутом между всеми другими соединениями.
Есть ли способ изменить длительность тайм-аута по умолчанию?