Книга: UNIX: разработка сетевых приложений
Параметры сокета SO_RCVTIMEO и SO_SNDTIMEO
Параметры сокета SO_RCVTIMEO и SO_SNDTIMEO
Эти два параметра сокета позволяют нам устанавливать тайм-аут при получении и отправке через сокет. Обратите внимание, что аргумент двух функций sockopt
— это указатель на структуру timeval
, ту же, которую использует функция select
(раздел 6.3). Это позволяет использовать для задания тайм-аута секунды и миллисекунды. Отключение тайм-аута осуществляется установкой его значения в 0 секунд и 0 миллисекунд. Оба тайм-аута по умолчанию отключены.
Тайм-аут приема влияет на пять функций ввода: read
, readv
, recv
, recvfrom
и recvmsg
. Тайм-аут отправки влияет на пять функций вывода: write
, writev
, send
, sendto
и sendmsg
. Более подробно о тайм-аутах сокета мы поговорим в разделе 14.2.
ПРИМЕЧАНИЕ
Эти два параметра сокета и концепция тайм-аута сокетов вообще были добавлены в реализации 4.3BSD Reno.
В реализациях, происходящих от Беркли, указанные параметры инициализируют таймер отсутствия активности, а не абсолютный таймер системного вызова чтения или записи. На с. 496 и 516 [128] об этом рассказывается более подробно.
- Параметр сокета SO_BROADCAST
- Параметр сокета SO_DEBUG
- Параметр сокета SO_DONTROUTE
- Параметр сокета SO_ERROR
- Параметр сокета SO_KEEPALIVE
- Параметр сокета SO_LINGER
- Параметр сокета SO_OOBINLINE
- Параметры сокета SO_RCVBUF и SO_SNDBUF
- Параметры сокета SO_RCVLOWAT и SO_SNDLOWAT
- Параметры сокета SO_RCVTIMEO и SO_SNDTIMEO
- Параметры сокета SO_REUSEADDR и SO_REUSEPORT
- Параметр сокета SO_TYPE
- Параметр сокета SO_USELOOPBACK