Когда, точно, функция BSD socket send()
возвращается к вызывающему?
В неблокирующем режиме он должен немедленно вернуться, исправить?
Что касается режима блокировки, справочная страница говорит:
Когда сообщение не помещается в буфер отправки сокета, обычно send() блокируется, если сокет не был помещен в неблокирующий режим ввода/вывода.
Вопросы:
- Означает ли это, что вызов
send()
всегда будет немедленно возвращаться, если в буфере передачи ядра есть место? - Является ли поведение и производительность вызова
send()
идентичным для TCP и UDP? Если нет, почему бы и нет?