Hola,
tengo un cliente C++ que necesita enviar datos de forma UDP a un servidor JAVA. Se que los datos tienen que ser serializables. Segun este link
http://www.chuidiang.com/chuwiki/index.php?title=Serializaci%C3%B3n_de_objetos_en_javael servidor java tiene que pasar de byte[] a serializable, ya que son datagramas UDP lo que recibe. Por lo tanto el codigo hace:
ByteArrayInputStream byteArray = new ByteArrayInputStream(dato.getData());
ObjectInputStream sis = new ObjectInputStream(byteArray);
En la segunda linia surge un error: invalid streamHeader, por lo que entiendo que el cliente C++ no serializa bien los datos. Los envio de esta manera:
class data {
public:
int value;
};
...
data buffer(1234);
ofstream ofs("binary.txt", ios::binary);
ofs.write((char *)&buffer, sizeof(buffer));
sendto(Descriptor, (char *)&ofs, sizeof(ofs), 0,
(struct sockaddr *)&Direccion, longitudDireccion)
Por lo que no encuentro otra manera de serializar los datos como bytes para que el servidor los lea bien.
Tambien sospecho que podria ser algun problema sobre el orden de los bits, que segun la plataforma usa Litle-endian o al reves.
Os agradezco es ayuda.