Согласно странице руководства для recv()
, errno
устанавливается в EAGAIN
или EWOULDBLOCK
, если для приема был установлен тайм-аут с использованием setsockopt(SO_RCVTIMEO)
.
У меня вопрос: что произойдет, если несколько таких сокетов будут использоваться с select()
. Выбрал бы возврат, если время ожидания одного из сокетов истекло из-за бездействия. Что вернет select()
.
Я пытаюсь реализовать tftp-сервер с функцией определения тайм-аутов. Одним из способов могло быть использование тайм-аута с select()
, но тогда мне пришлось бы использовать другое значение тайм-аута для каждого сокета и продолжать обновлять таймер до минимального значения, а затем делать еще немного жонглирования ... и т. Д. И т. Д. .. Просто кажется, много ненужной работы.
PS: tftp-сервер - это одновременный сервер с несколькими клиентами, которые обрабатываются с помощью мультиплексирования ввода-вывода.
select()
- person Parth K   schedule 11.04.2019