Sé que read() es una llamada de bloqueo a menos que haga que el socket no sea bloqueante. Así que espero que la llamada a read() que solicita 4K de datos devuelva un valor positivo (no de bytes leídos) o -1 en caso de error (posible restablecimiento de conexión por parte del cliente, etc.). Mi pregunta es: ¿puede leer() devolver '0' en cualquier ocasión?¿Puede la función read() en un socket conectado devolver cero bytes?
estoy manejando la lectura() de esta manera:
if ((readval = read(acceptfd, buf, sizeof(buf) - 1)) < 0)
{
}
else
{
buf[readval] = 0;
//Do some thing with data
}
bombas este código si se lee() devuelven cero y sé cómo solucionarlo. Pero, ¿es posible que read() devuelva cero?
¿Ha considerado leer la página * man *? – EJP