При использовании поведения по умолчанию (блокирование) в соке UDP, и в этом случае будет вызов для sendto()? Меня интересует в основном поведение Linux.Когда выполняется блок sendto() UDP?
Для TCP Я понимаю, что управление перегрузкой делает блокировку отправки(), если окно отправки заполнено, но что относительно UDP? Иногда он блокируется или просто отбрасывает пакеты на более низкие уровни?
Хорошо, после вашей ссылки я нашел linux-специфическое объяснение в [этой теме] (http://www.mail-archive.com/[email protected]/msg00113.html).Таким образом, короткий упрощенный ответ: _Linux блокировать отправку sendto в полном буфере отправки_. –
ОК, но теперь вопрос подталкивается еще на один шаг: при каких условиях Linux будет заполнять буфер сокета? (в отличие от удаления пакетов из него). Это, к сожалению, очень сложный вопрос. – MarcH
@MarcH, как насчет recv, отправить, когда сокет блокируется? Думаю, в этом случае send и recv все равно заблокируют? – Bionix1441