Cita de: Eternal Idol en 29 Septiembre 2015, 13:01 PM
Son sockets bloqueantes y estas en un bucle, cuando no haya mas que leer esperara a recibir algo desde el otro extremo.
Pero sale del bucle cuando hay error (-1) o cuando ya no recibe más datos, debido a la condición, y para que no se quede esperando respuesta, cuando el timeout salta sale del bucle si no ha recibido respuesta. Luego espera al otro extremo, hasta que el timeout salta, entonces deja de esperarlo y sale.