title: How to download files from a server with FTP(E)S?
body: <p>I've been looking all over for the answer but the closest thing I've found is just blame the server.</p>
  
  <p>This is my code, for my application I'm using the Zehon library:</p>
  
  <pre><code>import com.zehon.BatchTransferProgressDefault;
  import com.zehon.FileTransferStatus;
  import com.zehon.exception.FileTransferException;
  import com.zehon.ftps.FTPsClient;
  
  public class UploadFolderSample {
  /**
   * Please refer to http://www.zehon.com/FTPs_samples.htm for its full source code
   * @param args
   */
  public static void main(String[] args) {
      String host = "****";
      int port = 990;
      String username = "******";
      String password = "*******";
      String sendingFolder = "*******/";
      String destFolder = "ftpes:******/";
  
      try {
          com.zehon.ftps.FTPsClient ftps = new FTPsClient(host, port, username, password, false);
          ftps.folderExists(destFolder);
          int status  = ftps.sendFolder(sendingFolder, destFolder, new BatchTransferProgressDefault());
  
          if(FileTransferStatus.SUCCESS == status){
              System.out.println(sendingFolder + " got ftps-ed successfully to  folder "+destFolder);
          }
          else if(FileTransferStatus.FAILURE == status){
              System.out.println("Fail to ftps  to  folder "+destFolder);
          }
      } catch (FileTransferException e) {
          e.printStackTrace();
      }       
  }
  </code></pre>
  
  <p>}</p>
  
  <p>And this is my error:</p>
  
  <pre><code>Thank you for using Zehon software (www.zehon.com).  
  Please go to http://www.zehon.com/feedback.php to provide us your feedback about the product.
  Please go to http://www.zehon.com/feature_request.php to submit bugs or feature requests.
  com.zehon.exception.FileTransferException: org.apache.commons.net.ftp.FTPConnectionClosedException: Connection closed without indication.
      at com.zehon.ftps.FTPsClient.folderExists(FTPsClient.java:1239)
      at test.UploadFolderSample.main(UploadFolderSample.java:34)
  Caused by: org.apache.commons.net.ftp.FTPConnectionClosedException: Connection closed without indication.
      at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:313)
      at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:290)
      at org.apache.commons.net.ftp.FTP._connectAction_(FTP.java:396)
      at org.apache.commons.net.ftp.FTPClient._connectAction_(FTPClient.java:796)
      at org.apache.commons.net.ftp.FTPSClient._connectAction_(FTPSClient.java:203)
      at org.apache.commons.net.SocketClient.connect(SocketClient.java:172)
      at org.apache.commons.net.SocketClient.connect(SocketClient.java:192)
      at com.zehon.ftps.FTPsClient.getFTPSClient(FTPsClient.java:1444)
      at com.zehon.ftps.FTPsClient.folderExists(FTPsClient.java:1236)
      ... 1 more
  </code></pre>
  
  <p>I could really use some help, I've been stuck on the FTPS thing for over a week now.</p>
  
  <p>edit(added dialog):
  This is what happens when I use the wrong port, but at least it shows the dialog this way.</p>
  
  <pre><code>&gt; Thank you for using Zehon software (www.zehon.com).   Please go to
  &gt; http://www.zehon.com/feedback.php to provide us your feedback about
  &gt; the product. Please go to http://www.zehon.com/feature_request.php to
  &gt; submit bugs or feature requests. 220-FileZilla Server version 0.9.33
  &gt; beta 220 Welcome by ***** AUTH TLS 234 Using authentication type TLS
  &gt; USER ***** 331 Password required for ***** PASS ******* 230 Logged on
  &gt; SYST 215 UNIX emulated by FileZilla PASV 227 Entering Passive Mode
  &gt; (******) LIST ftpes:*****/ 550 PROT P required 220-FileZilla Server
  &gt; version 0.9.33 beta 220 Welcome by **** AUTH TLS 234 Using
  &gt; authentication type TLS USER **** 331 Password required for **** PASS
  &gt; **** 230 Logged on Transfer start for file ****\test.txt MODE S 200 MODE set to S. TYPE I 200 Type set to I PASV 227 Entering Passive Mode
  &gt; (*****) STOR ftpes:*****/test.txt 550 PROT P required Transfer error
  &gt; *****/test.txt Transfer complete for file *****/test.txt Transfer start for file *****/test.txt MODE S
  </code></pre>