Если sendto не работает в соответствии с man-страницей
"В случае успеха эти вызовы возвращают количество отправленных символов. В случае ошибки возвращается -1 и значение errno устанавливается соответствующим образом."
Я знаю, что с TCP это определенно так, и вам действительно следует попытаться отправить оставшиеся данные, как указано в руководстве Биджа по сетевому программированию.
Однако частичная отправка пакета UDP не имеет смысла для меня, и этот комментарий, похоже, подразумевает это.
Если сообщение слишком длинное для атомарной передачи через базовый протокол, возвращается ошибка EMSGSIZE и сообщение
не передается.
Может ли кто-нибудь подтвердить для меня, что если я вызову sendto (или send) с UDP-пакетом, что, если он на самом деле не помещается в исходящем буфере, я получу -1, возвращенное с errno, установленным в EMSGSIZE, и без частичной отправки как с потоковым (TCP) сокетом?