Olá, estou desenvolvendo um servidor Ftp em java e estou com problemas para responder ao comando LIST enviado pelo cliente ftp (filezilla). Estou fazendo da seguinte forma.
O Cliente me envia o PASV solicitando o modo passivo do servidor. Eu crio a porta aleatoriamente(ainda não) e envio a resposta para o servidor e aguardo a conexão. Ao conectar ele me envia o comando LIST, porem não sei como responder a esta solicitação. Pesquisando encontrei muitas informações sobre o MLSD porém o filezilla me pede apenas o LIST...
else if(Command.compareTo("PASV")==0)
{
System.out.println("\t PASV");
// aqui será gerada a porta aleatoriamente
int portaDois = 65025;
System.out.println("casa ");
dout.println("227 Entrando em modo passivo...(10,3,1,35,"+(portaDois/256)+","+(portaDois%256)+")");
pasv =new ServerSocket(portaDois);
pasv_client = pasv.accept();
din_pasv=new DataInputStream(pasv_client.getInputStream());
dout_pasv = new PrintStream(pasv_client.getOutputStream());
}
Talvez o filezilla não esteja me pedindo o MLSD por causa do meu comando TYPE. Quando o cliente me envia o COMANDO TYPE eu apenas envio a resposta
dout = new PrintStream(ClientSoc.getOutputStream());
.
.
.
.
dout.println("200 Command okay");
(dout é por onde estou enviando as respostas para o cliente)