por lacabra25 » Mié Mar 03, 2010 4:50 pm
Como te han dicho, el enviar un entero supone un problema por en que sentido leera los bytes del entero la maquina que los reciva y como lo hace la que lo envia.
Entre las opciones esta la de pasar el numero a texto, no lo recomiendo pues tendrias un byte por cada cifra del numero. Otra opcion es que en lugar de enviar un entero lo que envies sea una cadena de caracteres cuyos bytes sean los bytes del entero de forma que antes de enviarlo tendras que con un char y una operacion a nivel de bytes and obtener 8 bits del entero, desplazar el entero 8 bits, el char enviarlo o concatenarlo en una cadena de caracteres para enviarlos todos los bytes juntos, y asi obtener cada byte del entero. Esa cadena de bytes antes de enviarla se convierte a una cadena de tipo void, para no enviar chars sino datos simplemente, sin criterio alguno de si es texto, numeros o que es (de hay que al llamar a la funcion strlen delante de p->data este (char *), por como strlen recive una cadena de caracteres). Al recivir el paquete UDP, teniendo todos los bytes del entero tendras que en un entero inicializado a cero ir realizando la operacion a nivel de bits or e ir desplazando 8 bits para volver a tener el entero.
Esta cuenta ahora a pasado a la cuenta jhg