Sockets Java-C

Gus
21 de Septiembre del 2004
Hola a todos,
estoy intentando comunicar un cliente java y un servidor C y me funciona...a medias. Mientras que no hay problemas cuando java manda mensajes, pues C los recibe bien, no puedo decir lo mismo al contrario. Si lo que manda el servidor C al Java es un mensaje sin mas, es decir, un char *mens = "HOLA"; no hay problema, se recibe bien, pero el problema es que quiero que mande el resultado de una funcion y no lo hace bien.
Este es un fragmento del codigo en C donde mando el mensaje

retval = send(msgsock,Getdata(Buffer,Buffer2, &db),sizeof(Buffer2),0);

donde la cabecera de Getdata es
char *Getdata(char *transaction, char *query, struct DBType *db)

y la forma en que recibo en java es

BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String str;
StringBuffer texto=new StringBuffer();
System.out.println("Entro en el if");
if ((str = in.readLine())!=null)
{
reference.printResult(str);
texto.append(str);
}

pero imprime el mensaje de antes del if y luego no sigue, como si no reconociera el caracter de fin de linea (de fin de mensaje). Alguien puede decirme por que? deberia añadir algo a la cadena de C para que java viera que ha acabado?
Muchas Gracias!!

Sergio
21 de Septiembre del 2004
Está muy bueno el código.

Probá de enviarle un caracter ascii tuyo al final, onda que cuando el java lo lea, en lugar de leer contra el null o el fin de la cadena, que lo haga hasta el ascii que vos le indicás.

Saludos