Buen día,
En el ejercicio 1 me generó la duda del funcionamiento de la llamada: data, err = client.receive()
Supongamos que en el socket recibió el buffer “line1\nline2\n”, entonces entiendo que la invocación a client.receive() me devolverá “line1\nline2\n” entonces en la implementacion read_line tengo que devolver "line1" pero si se llegara a hacer una segunda invocación a read_line no tendría el buffer disponible pues ya lo "consumí" en la primer invocacion. Me surge la duda si es posible asumir que existe la firma: client.receive(cantBytes) y esto daría la posibilidad de ir leyendo de a 1 byte.
Por otro lado de acuerdo a la planilla para definir el comportamiento de no bloqueante o bloqueante en un receive es el timeout, esto implica modificar el comportamiento del socket luego de la invocación a read_line, para evitar esto se puede asumir que existe una funcion client.getTimeout, para restaurar luego restaurar el timeout con el valor original?
Saludos
Pablo González