IIC2333 / foro-2019-1

Foro oficial del curso IIC2333 - Sistemas Operativos y Redes, semestre 2019-1.
2 stars 0 forks source link

Duda a raiz de los test entregados #144

Closed Calomi closed 5 years ago

Calomi commented 5 years ago

Hola, Nuestra tarea funciona bien con sigo misma, solo faltan algunas funciones pero al testear con el servidor y cliente, a veces se queda pegado en algunos recv y otras veces ese lo pasa sin problemas. nosotros implementamos el sendy recvcon un tamaño fijo que en teoría seria el del tamaño del paquete más grande posible y al ver que se nos pega con los test surge la duda si está bien este aproach? o lo correcto sería x ejemplo: enviar connecion request, hacer un send(socket, "10", 2, 0); y luego, para cualquier msg: recv(socket, message, 2, 0); obtener el size del payload para luego hacer un segundo recv (si es necesario) recv(socket, message, PAYLOAD_SIZE, 0);

lo que nosotros en verdad hacemos es: send(socket, "10", 259, 0); y recv(socket, message, 259, 0); y en otro lado leer message desde message[2] hasta donde indica el size de payload (message[1]) para luego manejarlo.

Si no fuera ese el problema puedo pedir que vean nuestro repo por favor?

Perdón la duda tan encima de la entrega

nivek0o0 commented 5 years ago

Hola @Calomi

Tal como se explicó en la issue #136, se debe enviar y recibir la cantidad exacta de bytes totales que tiene el paquete, ni más ni menos, para que al receptor no le queden encolados los bytes restantes y así no entorpecer la lectura del siguiente paquete que recibirá.

Por otra parte, están enviando mal el ID y el PayloadSize. Como dice el enunciado, como se explicó en #124 y como se hace en el script better-chat.c, los primeros 2 bytes deben ser enteros (por ejemplo package[0] = 1) y no los caracteres "1" y "0".

Saludos!

Calomi commented 5 years ago

si, si usamos int, era solo un ejemplo jaja Gracias por la respuesta!!