Поскольку сетевые соединения ненадежны, все операции с Socket-функциями поддерживают централизованную настройку таймаутов: если чтение или отправка данных не завершится успешно за указанное время, функция прекратит попытки выполнить соответствующее действие.
Установить таймауты получения и отправки данных позволяет функция SocketTimeouts.
bool SocketTimeouts(int socket, uint timeout_send, uint timeout_receive)
Оба таймаута задаются в миллисекундах и влияют на все функции с указанным сокетом, на системном уровне.
Забегая вперед, скажем, что функция SocketRead имеет собственный параметр timeout, с помощью которого можно дополнительно управлять таймаутом во время конкретного вызова функции SocketRead.
SocketTimeouts возвращает true в случае успеха, а иначе — false.
По-умолчанию таймауты отсутствуют, что соответствует бесконечному ожиданию приема или отправки всех данных.