style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Autenticacion FTP en Java

Hola, estoy haciendo un pequeño programa para subir un archivo via FTP
Mi problema es el siguiente.
A la hora de conectarme al servidor, me manda una bienvenida que es la siguiente:

220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 50 of 500 allowed.
220-Local time is now 20:27. Server port: 21.
220-This is a private system - No anonymous login
220 You will be disconnected after 3 minutes of inactivity.

si me da el codigo "220" quiere decir que si se ha conectado con exito, si me devuelve otro codigo al principio se crea un error en la conexion. esto lo he echo con el siguiente codigo.

public synchronized void connect(String host, int port, String user,
      String pass) throws IOException {
    if (socket != null) {
      throw new IOException("Ya se encuentra conectado.");
    }
    socket = new Socket(host, port);
    reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    writer = new BufferedWriter(
        new OutputStreamWriter(socket.getOutputStream()));
////////
    String response = readLine();
         
    if (!response.startsWith("220")) {
      throw new IOException(
          "Se ha recibido una respuesta desconocida del servidor FTP "
              + response);
    }
         response=readLine();
    sendLine("USER " + user);
    response = readLine();
    if (!response.startsWith("331")) {
      throw new IOException(
 "Se ha recibido una respuesta desconocida del servidor FTP  despues de enviar el usuario "+ response);
    }

    sendLine("PASS " + pass);

    response = readLine();
    if (!response.startsWith("230")) {
      throw new IOException(
          "No se pudo acceder correctamente con la contraseña asignada "
              + response);
    }

El problema es que a la hora de hacer la lectura en la variable response, me lee la linea:

220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
-queriendo decir que se ha conectado correctamente, al enviar el Usuario y volver a leer la linea me lee:

220-You are user number 50 of 500 allowed.
y no me lee :

331 User a4786889 OK. Password required

que es lo que deberia leer.
Alguien me podria dar un consejo porfavor?? gracias de antemano

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

deberia leer?

No es lo que debería leer. No puedes culpar a un servidor FTP real porque no se comporta como tu programa espera. Y si crees que tienes broncas ahorita, espérate a que tengas que implementar la transmisión de datos, que es todo un rollazo porque puede ser en modo activo o pasivo, tienes dos conexiones (la de control que es la que ya estás manejando, y la de datos que solamente se abre para subir o bajar archivos)...

No es mejor que utilices algo como Apache Commons Net y te quites de problemas?

gracias

Muchas gracias por la informacion!! :D pero una pregunta, una vez creado el programa con Apache Commons, el usuario que utilice mi Cliente FTP tendra que instalar tambien el Apache Commons Net??

Imagen de ezamudio

no

La idea de que uses Commons Net es precisamente que ese ya es un cliente FTP probado contra varios servidores distintos e implementa el protocolo de manera muy completa, por lo que no importa qué servidor FTP tengan del otro lado.

O si te refieres a que los usuarios de tu aplicación requieren Commons Net, sí, necesitan tener la biblioteca en su classpath.

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">