Problema con socket en java y c++

alfaximena
10 de Julio del 2009
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 re-
cibir 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!