Visualizzazione dei risultati da 1 a 3 su 3

Discussione: ftp e porte

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    132

    ftp e porte

    Ciao a tutti, ho un problema :
    un programma distribuito a vari utenti che si collega via FTP ad un server.
    Non mi ha mai dato problemi fino ad oggi


    MI collego in due modi al server :

    1- con libreria : org.apache.commons.net.ftp.FTPClient
    Questo metodo non da errori

    codice:
                FTPClient ftp = new FTPClient();
                ftp.enterLocalPassiveMode();
                ftp.connect(server, 21);
                boolean con = ftp.login(username, password);
                String fileServer = "file.dat";
    
                if (!dirFtp.equals("null")) {
                    boolean dirCambia = ftp.changeWorkingDirectory(dirFtp);
                }
    
                 lfile = new FileOutputStream("file.dat");
                 boolean c = ftp.retrieveFile(fileServer, lfile);
    
                lfile.close();
                ftp.disconnect();
    2- Con la libreria apache ho problemi a scaricare file zip, quindi li scarico con :

    codice:
                BufferedInputStream bis = null;
                URL url;
                url = new URL(url + dir + "file.zip;type=i");
                bis = new BufferedInputStream(url.openStream());
                BufferedOutputStream bos = new BufferedOutputStream(new      FileOutputStream("file.zip"), 4096);
                byte[] data = new byte[4096];
                int count;
                int val = 0;
                int dim = 0;
                while ((count = bis.read(data, 0, 4096)) != -1) {
                    bos.write(data, 0, count);
                }
                bis.close();
                bos.flush();
    il secondo metodo mi da (solo su un utente, non era mai successo) errore :
    ERRORE : IOException
    ERRORE : sun.net.ftp.FtpProtocolException: PORT :500 Illegal PORT command, EPSV ALL in effect

    Mi blocca solo il secondo metodo e lascia tranquillamente connettersi con apache ?
    Sembra che usino 2 porte diverse ?
    Non dovrebbe essere standard la 21 per le connessioni ftp?

    Qualcuno saprebbe darmi una spiegazione, o qualche documento per capire perchè apache va in errore a scaricare zip

    Grazie.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: ftp e porte

    Originariamente inviato da andreu
    Con la libreria apache ho problemi a scaricare file zip
    Ma li scarichi in modalità "binary"?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    132
    si, era quello :

    codice:
                ftp.enterLocalPassiveMode();
                ftp.setFileType(ftp.BINARY_FILE_TYPE);
                FileOutputStream fos = new FileOutputStream( "file.zip");
                boolean c = ftp.retrieveFile("RemoteFile.zip", fos );
    Questo mi risolve il problema con apache e zip, ma mi piacerebbe capire lo stesso perchè l'utente mi blocca la connessione se non uso apache.
    Qual'è in sostanza la differenza tra i due metodi?
    Suppongo che tra i due sia preferibile usare apache, visto che non da errore ?

    Grazie per la risposta.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.