Java - Problema con socket en java y c++Estoy conectandom

   
Vista:

Problema con socket en java y c++Estoy conectandom

Publicado por Syl (1 intervención) el 10/07/2009 22:12:06
Estoy conectandome a un servidor desarrollado en java el cual utiliza sys/socket.h y usa
la clase DataInputStream, para comunicarse usa específicamente readUTF de la forma:

in = new DataInputStream(socket.getInputStream());
inputString = in.readUTF()

Mi aplicación en C++ usa winsock2.h y utilizo el método send para enviar las tramas al servidor java así:

#define MAXLONGITUD 10000
char bufEnviados[MAXLONGITUD + 1];

bufEnviados[0] = (0xff & (longitud >> 8));
bufEnviados[1] = (0xff & longitud);

send(sock, bufEnviados,strlen(bufEnviados), 0 );

Envío los dos primeros caracteres con formato UTF para que el servidor en java los pueda reconocer.

La aplicación funcionó correctamente hasta que recibió una trama mayor de 6.236 caracteres después de lo cual cierra la conexión con el socket y se cae mi aplicación!

He realizado varias pruebas y no logro enviar más de esos 6.236 caracteres, sin embargo si logro recibir cualquier cantidad de caracteres sin problemas!

Alguien puede ayudarme a resolver este problema? estoy intentando de todo y no lo logro!

De antemano muchas gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con socket en java y c++Estoy conectan

Publicado por Tom (911 intervenciones) el 15/07/2009 16:10:54
Se te entiende fatal ...
¿tu programa en C++ peta al recibir una cadena mayor de ese número de caracteres? entonces deberías poner el código que lee, no el que envía.

o bien ¿te peta al tratar de enviar más de 6236 caracteres? ... si cada carácter son 2 bytes y defines un buffer de 10.000 bytes, sólo te caben 5.000 caracteres.

Por otra parte, en cuanto un byte de la pareja sea 0, sólo transmitirás hasta ahí (mira strlen()), y eso te pasará cuando longitud lleve un byte a 0.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar