LINUX.ORG.RU

Посылка через неблокируемый сокет


0

0

Вот такой вопрос возник.

Допустим, есть буфер сданными 1024 байта и неблокируемый сокет.

Если при выполнении "send(socket, buf, 1024, MSG_DONTWAIT)" возвращается -1 и EAGAIN в errnum, то не совсем понятно сколько данных при этом отправляется, отправляется-ли вообще, и какие данные посылать в дальнейшем - этот-же буфер с размером 1024 байта или меньше?

Кроме того, интересует вопрос - может-ли команда send вернуть значение меньшее чем 1024 и что делать дальше в этом случае (я так понимаю, в следующий раз надо делать что-то типа "send(socket, (void *)(buf+sended_size), (1024 - sended_size), MSG_DONTWAIT)")?

>Если при выполнении "send(socket, buf, 1024, MSG_DONTWAIT)" возвращается -1 и EAGAIN в errnum, то не совсем понятно сколько данных при этом отправляется, отправляется-ли вообще,

в этом случае небыло передано ни одного байта

>Кроме того, интересует вопрос - может-ли команда send вернуть значение меньшее чем 1024

не может а вероятней всего

>и что делать дальше в этом случае (я так понимаю, в следующий раз надо делать что-то типа "send(socket, (void *)(buf+sended_size), (1024 - sended_size), MSG_DONTWAIT)")?

самое оно но на тему флагов не уверен

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