Настройка таймаутов передачи и приема данных сокетами

Поскольку сетевые соединения ненадежны, все операции с Socket-функциями поддерживают централизованную настройку таймаутов: если чтение или отправка данных не завершится успешно за указанное время, функция прекратит попытки выполнить соответствующее действие.

Установить таймауты получения и отправки данных позволяет функция SocketTimeouts.

bool SocketTimeouts(int socket, uint timeout_send, uint timeout_receive)

Оба таймаута задаются в миллисекундах и влияют на все функции с указанным сокетом, на системном уровне.

Забегая вперед, скажем, что функция SocketRead имеет собственный параметр timeout, с помощью которого можно дополнительно управлять таймаутом во время конкретного вызова функции SocketRead.

SocketTimeouts возвращает true в случае успеха, а иначе — false.

По-умолчанию таймауты отсутствуют, что соответствует бесконечному ожиданию приема или отправки всех данных.