Al utilizar el comportamiento predeterminado (bloqueo) en un socket UDP, ¿en qué caso se bloqueará una llamada a sendto()? Estoy interesado esencialmente en el comportamiento de Linux.¿Cuándo se bloquea un UDP sendto()?
Para TCP Entiendo que el control de la congestión hace que el bloqueo de la llamada a send() esté lleno, pero ¿qué pasa con el UDP? ¿Incluso bloquea algunas veces o simplemente deja que los paquetes se descarten en las capas inferiores?
Ok, siguiendo su enlace encontré una explicación específica de Linux en [este hilo] (http://www.mail-archive.com/[email protected]/msg00113.html).Respuesta simplificada tan breve: _Linux do block sendto en un buffer de envío completo_. –
OK, pero ahora la pregunta se ha llevado un paso más allá: ¿bajo qué condiciones Linux permitirá que el buffer del socket se llene? (en lugar de dejar caer paquetes) Desafortunadamente esta es una pregunta muy difícil. – MarcH
@MarcH, ¿qué tal recv, enviar cuando el socket está bloqueando? Creo que en este caso send y recv bloquearán de todos modos? – Bionix1441