Practico 2 - Ej 1 - Dudas cartilla API Socket

Practico 2 - Ej 1 - Dudas cartilla API Socket

de Pablo Enrique Gonzalez Inthamoussu -
Número de respuestas: 2

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


 

En respuesta a Pablo Enrique Gonzalez Inthamoussu

Re: Practico 2 - Ej 1 - Dudas cartilla API Socket

de Jorge Visca -

Pista: deberías ir guardando el resultado de tus client.receive() en un buffer interno tuyo, y hacer que tus read_line() lean de ahí.