Pessoal,
Estou tentando ler de um socket sobre uma conexão FTP de controle. A cada comando FTP enviado são retornadas uma ou mais linhas pelas quais eu sei se a comunicação caminha bem ou não. O problema é que o método readln() tem mostrado comportamento errático, às vezes embaralhando as mensagens de retorno aos diversos comandos enviados, apesar da tentativa de tratar uma resposta de cada vez.
Depois disso tudo o que lembrei é que em C/C++ tem o tal do flush, que descarrega o canal, garantindo que o próximo stream a ser lido será novo. Há algo do tipo em Java ?
Veja só o trecho de código
cmdOut = new PrintWriter(cmdSocket.getOutputStream(), true);
cmdIn = new BufferedReader( new InputStreamReader (cmdSocket.getInputStream()));
....
cmdOut.println("USER anonymous
");
String line = null;
while ((line = cmdIn.readLine()) != null) {
System.out.println(line);
if (! cmdIn.ready()) break;
}
O segundo trecho se repete inumeras vezes, de acordo com a “conversa” que quero estabelecer.
Alguém sabe como garantir que a saída do socket, mantida a requisição, seja sempre a mesma ?
Tks