La Web del Programador: Comunidad de Programadores
 
    Pregunta:  5498 - PROBLEMAS CON LECTURA EN UN CLIENTE FTP.
Autor:  Sara
Hola soy estudiante e intento realizar un programa cliente FTP,pero tengo bastantes problemas con la lectura.Quiero añadir a mi frame un carea de texto donde se visualize todo lo que el servidor FTP me manda por uno de los puertos del ordenador,¿pero cómo detecto cuando me escribe?y¿cuando sé que ha terminado de escribir?
Por favor ayuda y muchas gracias.

  Respuesta:  Hector Fabio Meza
Basicamente, lo que necesitas es manejo de sockets en java, no se que tanto sepas de esto. Lo que tendrias que hacer es tener un ciclo (puede ser en un hilo) que permanentemente utilice una instruccion de lectura que puedes lograr combinando flujos (streams) sobre el socket por el que conectaste al ftp, y verifique si la linea esta o no vacia. Estas operaciones leen hasta que encuentren un fin de linea, asi que probablemente no tendras que preocuparte por saber cuando ha terminado de escribir.

Otra opcion es, dado que la mayoria de mensajes de un servidor ftp se dan en respuestas a tus comandos, puedes saber mas o menos cuando te escribira, y leer de acuerdo a esto.

Necesitaras manejar algo asi:

BufferedReader br = null;
PrintWriter pw = null;

//ahora conectas el socket
socket = new Socket(direccion, puerto);
/*Obtenes flujos de entrada y salida*/
pw = new PrintWriter(socket.getOutputStream()); //este es para cuando necesites escribirle al ftp
br = new BufferedReader(new InputStreamReader(socket.getInputStream())); //con este puedes leer
//esta instruccion te permite leer del servidor
String fromServer = br.readLine();
//y esta te permite escribirle
pw.println(\"Mensaje\");

Espero que esto te sirva,

Suerte