Closed Calomi closed 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!
si, si usamos int, era solo un ejemplo jaja Gracias por la respuesta!!
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
send
yrecv
con 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 unsend(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);
yrecv(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