LINUX.ORG.RU

Если не влезает в размер UDP пакета, то разобьёт на части. Можно или нет прочитать - как повезёт, UDP доставку не гарантирует. Если с сетью и фаерволами всякими всё нормально, то можно.

Legioner ★★★★★ ()
Ответ на: комментарий от Kosyak

В если его там не будет, то смотри сбоку, там постоянная ссылка на ЛОР.

abraziv_whiskey ★★★★★ ()

> Потеряются ли остальные 384 байта

да, это же не stream protocol.

MSG_TRUNC поможет узнать, что что-то было потеряно.
с этим флагом udp_recvmsg() вернет истинный размер
пакета.

ну, или MSG_PEEK.

idle ★★★★★ ()
Ответ на: комментарий от idle

Или можно просто не поскупиться на буфер. Благо, лимит у UDP не заоблачный.

const86 ★★★★★ ()

> Потеряются ли остальные 384 байта или их можно прочитать следующим вызовом recvfrom()?

man udp

All receive operations return only one packet. When the packet is smaller than the passed buffer, only that much data is returned; when it is bigger, the packet is truncated and the MSG_TRUNC flag is set.

arsi ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.