Cita:
Iniciado por aeb_asturias Creo que ya se donde esta el problema pero nose como se soluciona.
Antes de enviar el contenido del fichero , envio una cadena por el socket con este codigo:
Código:
char *dato="RF\n";
write(s,dato, sizeof dato);
El problema está en el sizeof(dato). dato es un puntero, y su sizeof es el tamaño de un puntero, no la longitud de la cadena a enviar. Si no me equivoco, casi seguro que en el sistema donde estás ejecutando, sizeof(dato)=4 (es decir, un puntero ocupa 4 bytes).
Por lo tanto, le estás diciendo a write que escriba cuatro bytes. El primero es R, el segundo es F, y luego \n, que al escribir en algo que no es un archivo de texto, es sólo un byte. El cuarto byte de la cadena es el carácter terminador \0, que a lo mejor es lo que se te muestra como "esc" en Java.
La conclusión es que a write le tienes que pasar la longitud de la cadena a imprimir, no el tamaño del puntero que apunta a la cadena.
¿Puedes probar esto?
Código:
char *dato="RF\n";
write(s,dato, strlen(dato));