es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

FTPClient.connect siempre espera

public static FTPClient connect(String hostname, int port, int mode, String encoding) {

    FTPClient ftpClient = null;

    try {
        ftpClient = new FTPClient();

        //FTPClient.HostnameResolver resolver = new FTPClient.NatServerResolverImpl(ftpClient);
        //ftpClient.setPassiveNatWorkaroundStrategy(resolver);
        //ftpClient.setRemoteVerificationEnabled(false);

        ftpClient.setControlEncoding(encoding);
        ftpClient.enterLocalPassiveMode();
        // ¡¡¡¡¡Aquí se encuentra siempre esperando la conexión!!!!!!! ¡Ayuda por favor!!!
        ftpClient.connect(hostname, port);


        // Establecer el tipo de transferencia de archivos como binario
        ftpClient.setFileType(FTP.BINARY_FILE_TYPE);

        switch (mode) {
        case MODE_TYPE_LOCAL_PASSIVE:
            // Pasivo local
            ftpClient.enterLocalPassiveMode();
            break;
        case MODE_TYPE_LOCAL_ACTIVE:
            // Activo local
            ftpClient.enterLocalActiveMode();
            break;
        case MODE_TYPE_REMOTE_PASSIVE:
            // Pasivo remoto
            ftpClient.enterRemotePassiveMode();
            break;
        default:
            throw new IOException("No se admite el tipo de modo " + mode);
        }

        return ftpClient;
    } catch (Exception e) {
        if (ftpClient != null && ftpClient.isConnected()) {
            try {
                ftpClient.disconnect();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
        }
    }
    return null;
}

public static void main(String[] args) {

    FTPClient client = FtpUtils.connect("103.143.106.197", 990);
    boolean login = FtpUtils.login(client, "xxx", "xxx");
    System.out.println(login);
}

Cuando me conecto a un servicio de terceros, siempre se queda esperando aquí, en la función de conexión. Ayuda por favor. Me pregunto si hay alguna configuración que no se haya establecido. Pero puedo conectarme al servidor FTP configurado en la máquina local. También puedo conectarme a un servidor FTP de terceros utilizando Filezilla.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que la conexión está agotando el tiempo y no se establece. Esto podría ser debido a varias razones, como el bloqueo del firewall, el puerto o el nombre de host incorrectos, etc.

    Puede probar los siguientes pasos para solucionar el problema:

    1. Verificar si el puerto y el nombre de host son correctos. Puede intentar hacer un ping al nombre de host para ver si está accesible.

    2. Comprobar si hay firewalls o restricciones de red que bloqueen la conexión. Puede intentar desactivar temporalmente el firewall para ver si eso ayuda.

    3. Intentar utilizar una red o conexión a internet diferente para ver si el problema persiste.

    4. Revisar los registros del servidor FTP para ver si hay errores o mensajes de tiempo agotado.

    5. Puede intentar utilizar un cliente FTP diferente como Filezilla o WinSCP para ver si el problema está en el código o en la conexión misma.

    6. Por último, puede intentar ponerse en contacto con el proveedor de servicios de terceros para ver si tienen requisitos o restricciones específicas para conectarse a su servicio.

Comments are closed.