MSG_WAITALL в сочетании с SO_RCVTIMEO?

В блокирующем сокете может ли флаг MSG_WAITALL в вызове recv() сочетаться с параметром сокета SO_RCVTIMEO, установленным с вызовом setsockopt() в сокете?

Моя цель здесь - либо получить полное сообщение, либо тайм-аут/ошибку...


person Mikael Engström    schedule 24.08.2017    source источник
comment
Что происходит, когда вы пытаетесь это сделать?   -  person President James K. Polk    schedule 25.08.2017
comment
Аппаратное обеспечение, на котором он должен работать, еще не готово.   -  person Mikael Engström    schedule 25.08.2017


Ответы (1)


Протестировали его сейчас, и он отлично работает для объединения MSG_WAITALL и SO_RCVTIMEO при блокировке сокетов!

Затем вызов recv() возвращается, когда получена запрошенная длина или когда истекает настроенный тайм-аут сокета (или если есть ошибка/прерывание).

person Mikael Engström    schedule 28.08.2017