Полезно ли ВСЕГДА использовать либо select(), либо poll(), и наложить ответ на 10 секунд на вызовы send() и recv()? Или я должен просто позволить им блокировать бесконечно?Использование тайм-аутов в сокете send() и recv()
Влияет ли этот таймаут (с помощью select() или poll()) заставляет меня потерять какую-то отчетность об ошибках или функциональные возможности (в виде возвращаемых значений), которые я могу получить, просто используя send() и RECV()?
ПРИМЕЧАНИЕ. Предполагая, что я опросу в той же теме прямо перед вызовом recv() или send(). И вызов poll() статически хорошо отформатирован, т. Е. Параметры не изменяются динамически, кроме того, как они действуют на основе вызова завернутого recv() или send()
ДРУГОЕ ПРИМЕЧАНИЕ. Если есть тайм-аут, тогда Я выброшу исключение, и пусть программист поймает его. Я надеялся, что это приведет к защите от атаки DOS. Если есть действительно тайм-аут. Я сгенерирует исключение и не добраться до вызова либо ПРИЕМ() или отправить()
ОЧЕРЕДНОЙ Примечание: Исходный код, связанные с тем, что я имею в виду, можно найти здесь https://beej.us/guide/bgnet/output/html/singlepage/bgnet.html#faq по схожему FAQ
Спасибо!
Что именно вы пытаетесь решить? Что вы будете делать, если есть тайм-аут? Начать опрос снова? Или выйти? Или что-то другое? Что вы ожидаете делать, если есть какая-то другая ошибка? Что вы хотите, если принимающая сторона действительно «идет медленно», и сообщение добирается туда, но очень медленно (например, кто-то заменил быструю ссылку с гораздо более медленной)? –
Можете ли вы предоставить код? –
DOS атаки, как правило, «много трафика», а не «нет трафика», что и дает тайм-аут ... –