Closed ncoen97 closed 5 years ago
¡Buenas!
Pinta complicado, che, ¿no?
¿Averiguaron algo más?
Yo correrÃa ambos procesos con Valgrind, a ver en dónde se está escapando la tortuga. Porque da la sensación de estar pisando memoria, o que se te estén mezclando recv
s de distintos send
.
En lo que compartiste no encontré el error, pero eso no significa que no esté. Y un poco también me falta ver otras partes del código que pueden ser relevantes.
Pero arrancarÃa por valgrind, y después ver si los caracteres falopa esos se enviaron mal o se recibieron mal (imprimir byte a byte lo que se envÃa y recibe, o probar tcpdump/wireshark).
Tenenos al tanto.
¿Qué pasó, che?
HabÃa un problema en la función mandar 0.0 no nos estaba tomando los bytes del header, pero ya lo arreglamos. Logramos darnos cuenta con el tcpdump :). Cierro issue.
👋 ¡Hola!
Estamos teniendo problemas con la serializacion y deserializacion de listas entre dos pcs. Probando las funciones en un solo programa (probando en el main) funciona bien, el problema esta cuando queremos hacerla entre dos módulos. Siempre lee mal algún byte termina rompiendo toda la función. El primer elemento de la lista siempre lo lee bien, en el segundo lo empieza a leer bien pero en alguna variable lee algo mal.
Por ejemplo, mandamos: { uint32_t size_nombre = 7 char nombre_tabla = "frutas" uint16_t key = 1 uint32_t size_value = 7 char value = "banana"
uint64_t timestamp = 123456789 , uint32_t size_nombre = 7 char nombre_tabla = "frutas" uint16_t key = 2 uint32_t size_value = 8 char value = "manzana"
uint64_t timestamp = 123456789 } Y llega: uint32_t size_nombre = 7 char nombre_tabla = "frutas" uint16_t key = 1 uint32_t size_value = 7 char value = "banana"
uint64_t timestamp = 123456789 , uint32_t size_nombre = 7 char nombre_tabla = "frutas" uint16_t key = 2 uint32_t size_value = 8 char value = "manzecib!\n"
uint64_t timestamp = 3828171163979310185 } Espero que nos den una idea de cual puede ser el problema, sobre todo porque en el primero funciona y en el segundo no, y si lo probamos en el main también funciona. Saludos.