FTPClient listFiles 阻塞问题】的更多相关文章

Android端使用 FTPClient 实现上传文件到到filezilla server(filezilla server部署在阿里云服务器)出现 listFiles阻塞.具体的现象是 Ftp Client成功登陆Ftp服务,进一步执行 listFiles方法程序卡主一直没有返回. 经过一番排查发现问题出现在阿里云ECS安全策略上.阿里云ECS默认所有的端口都是“关闭”状态,只有 添加到安全策略表中的端口才能使用.Ftp命令端口默认21,如未更改,将21端口添加到ECS安全策略表. 除此之外需…
今天使用ftp获取另一台服务器上的文件,发现不管切换到哪个目录,获取什么文件,调用FTPClient.listFiles()方法时返回的始终为空,但是代码又运行正常没有异常抛出. 网上查了下,发现有很多人都碰到了这个问题,解决的方式也很简单, 在调用FTPClient.listFiles()方法前,先调用FTPClient.enterLocalPassiveMode();就可以了. 这个方法的意思就是每次数据连接之前,ftp client告诉ftp server开通一个端口来传输数据. 为什么要…
项目中使用commons-net-3.0.1.jar实现FTP文件的下载,程序运行到 FTPClient.listFiles()或者FTPClient.retrieveFile()方法时,就停止在那里,什么反应都没有,出现假死状态,原来的Windows系统可以用,换了一个就不行了,找了好久,终于找到了解决的办法. 在调用这两个方法之前,调用FTPClient.enterLocalPassiveMode();这个方法的意思就是每次数据连接之前,ftp client告诉ftp server开通一个端…
FTPClient调用retrieveFileStream导致线程挂起(防火墙问题):下载文件小于实际文件问题解决 实际是因为FTP的两种传输模式:主动模式和被动模式的不同而导致的 FTPClient.listFiles()或者FTPClient.retrieveFile()方法时,就停止在那里,什么反应都没有,出现假死状 态.google一把,发现很多人也出现了此类问题,最终在一个帖子里找到了解决办法.在调用这两个方法之前,调用 FTPClient.enterLocalPassiveMode(…
最近在和一个第三方的合作中不得已需要使用FTP文件接口.由于FTP Server由对方提供,而且双方背后各自的网络环境都很不单纯等等原因,造成测试环境无法模拟实际情况.测试环境中程序一切正常,但是在部署到生产环境之后发现FTP操作不规律性出现“卡死”现象:程序捕获不到任何异常一直卡着,导致轮巡无法正常工作(由于担心在轮巡时间间隔内处理不能完成,我没有采用类似quartz或者crontab的定时任务,而是采用while-true然后sleep的方式). 为了解决这个问题,我首先考虑的是对于FTPC…
今天在windows上调试FTP下载文件时,出险线程假死,代码如下: if (inputStream != null) { byte[] data = null; ByteArrayOutputStream outStream = new ByteArrayOutputStream(); data = new byte[inputStream.available()]; int len = 0; while ((len = inputStream.read(data)) != -1) { out…
使用 Commons.net FTPClient 上传 文件打不开. 原因,FTPClient 默认使用 ASCII 传输文件,FTP.ASCII_FILE_TYPE; 需要在登录代码后重新指定传输方式. public static void main(String[] args) { FTPClient ftpClient = new FTPClient(); try { // 连接指定服务器,默认端口为21 ftpClient.connect("XXX.XXX.XXX.XXX",9…
问题代码: FTPFile[] fs = ftpClient.listFiles(); for (FTPFile ff : fs) { if (ff.getName().equals(fileName)) { in = ftpClient.retrieveFileStream(fileName); } } 原因: 官方说法是:完成文件传输必须调用completependingcommand和检查它的返回值来验证成功.如果没有这样做,后续命令可能会意外地出错 简单来说:completePendin…
和上一份简单 上传下载一样 来,任何的方法不懂的,http://commons.apache.org/proper/commons-net/apidocs/org/apache/commons/net/ftp/FTPClient.html API拿走不谢!!! 1.FTP配置实体 package com.agen.util; public class FtpConfig { //主机ip private String FtpHost = "192.168.18.252"; //端口号…
1. FTPFile[] files=ftpClient.listFiles(ftpDirectory); 没有数据 public static boolean ftpLogin(String server,int port,String userName,String userPassword,FTPClient ftpClient){ if(ftpClient==null){ ftpClient= new FTPClient(); } boolean isLogin = false; if(…