3 votes

La classe du client FTP ne se connecte pas

FTPClient client = new FTPClient();
FileInputStream fis = null;

try {
    client.connect("32.178.10.121");
    client.login("XXX", "XXX");

    //
    // Create an InputStream of the file to be uploaded
    //
    String filename = "Touch.dat";
    fis = new FileInputStream(filename);

    //
    // Store file to server
    //
    client.storeFile(filename, fis);
    client.logout();
} catch (IOException e) {
    e.printStackTrace();
} finally {
    try {
        if (fis != null) {
            fis.close();
        }
        client.disconnect();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

J'ai essayé mais à chaque fois il y a un time out of bound exception et par d'autres moyens je réussis à me connecter mais pas d'ici quelle pourrait être la raison.

voici la trace de la pile :

java.net.ConnectException: Connection timed out: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(Unknown Source)
    at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at org.apache.commons.net.DefaultSocketFactory.createSocket(DefaultSocketFactory.java:53)
    at org.apache.commons.net.SocketClient.connect(SocketClient.java:162)
    at org.apache.commons.net.SocketClient.connect(SocketClient.java:250)
    at forTesting.FileUploadDemo.main(FileUploadDemo.java:15)

3voto

Anubhab Points 1001

Essayez d'abord de définir les détails du proxy comme suit

FTPClient ftp = new FTPHTTPClient(proxyHost, proxyPort, proxyUser, proxyPassword);

Essayez ensuite de vous connecter comme vous le faites et faites-moi savoir si l'erreur a disparu.
Si l'erreur persiste, vérifiez les paramètres du pare-feu pour le serveur FTP. Essayez également de vous connecter à partir du système avec un outil d'interface graphique comme Filezilla pour vous connecter au serveur.

1voto

carlspring Points 7885

Vous pouvez essayer d'utiliser le mode PASV si vous êtes derrière un pare-feu ou un proxy. Jetez un coup d'œil aquí :

Dans les cas où le client se trouve derrière un pare-feu et n'est pas en mesure de d'accepter des connexions TCP entrantes, le mode passif peut être utilisé. Dans ce cas, le mode, le client utilise la connexion de contrôle pour envoyer une commande PASV au au serveur, puis reçoit du serveur une adresse IP et un numéro de port du serveur, que le client utilise ensuite pour ouvrir une connexion de connexion de données à partir d'un port client arbitraire vers l'adresse IP et le numéro de port du serveur reçus. et le numéro de port du serveur reçus.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X