Problemas con la función .recv() en sockets en Python
Se puede configurar mediante setsockopt o, más simplemente, setblocking,
settimeout. recv en un socket de bloqueo sigue estas reglas: cuando hay datos en el búfer, devuelve todos los datos inmediatamente; cuando no hay datos en el búfer, se bloquea hasta que haya datos en el búfer. recv para sockets sin bloqueo sigue las siguientes reglas:
Cuando hay datos en el búfer, todos los datos se devuelven inmediatamente; cuando no hay datos en el búfer, se genera y devuelve un error EAGAIN (en; Python, generará una excepción). En ambos casos, no se devolverá una cadena vacía; los datos vacíos solo se devolverán después de que la otra parte cierre la conexión.