421错误
原因:同时连接该ftp的人数过多,一般ftp网站都有同时登陆人数的上限,超过该上限就会出现421错误。
解决办法:在ftp软件中,把重试次数改为999,重试间隔改为60秒,一般几分钟到半小时就会连上,要注意的是,有些网站有连接时间的设定,连上后,超过一定时间不下载,就会自动断开,所以要经常去看看有没有连上。
530“not login"
原因:用户名或密码错误,有些网站每隔一段时间就要修改密码,导致原来的密码无法登陆。
解决方法:去发布该ftp密码的论坛,或该ftp登陆时的欢迎词中,获得正确的密码,然后登陆。
“连接超时,无法连接”错误
原因1:该ftp暂时关机,特别是一些个人ftp容易出现该错误。
解决方法:去发布该ftp论坛找开机时间,在开机时间范围内连接。如果未标明时间,则等几个小时或几天后再连接该ftp,也可以参照421错误的解决方法。
原因2:ftp永远关闭
解决方法:无药可救,找其他ftp吧。
“无法解析域名”
原因1:该ftp的域名输入错误,如漏打一个字母,使用了全角标点等。
解决方法:去发布该ftp论坛找到正确的域名输入。
原因2:本地的域名解析服务器坏了(长城宽带等fttb容易出现)
解决方法:等本地网络修好即可使用,也可以直接输入ftp的ip地址。
原因3:该ftp修改了域名。
解决方法:去发布该ftp论坛找正确的域名。
原因4:个人的ftp设置错误。
解决方法:通知开站的朋友修正。
原因5:ftp永远关闭
解决方法:无药可救,找其他ftp吧。
“only one …… ip address……”
原因1:使用多线程下载,超过该ftp允许的线程。
解决方法:看看自己是不是已经与该ftp有了连接,如果有了就不要再开新的连接。如果没用看原因2。
原因2:局域网内有其他人连接了该ftp(长城宽带等fttb容易出现)
解决方法:等几个小时,别人断开后,再连接该ftp。
“连接拒绝”
原因:恭喜你,你的ip已经被该ftp封了。
解决方法:等一段时间(由该ftp设定,半小时到一天不等),才能连接该ftp。如果是随机获得ip地址的话,也可以断开网络,重播上网,前提是ip前三档不能完全一样。
“only client……”
原因:一般是用flashfxp连接非21端口的ftp站点。
解决方法:打开被动模式。
连接后空目录
原因1:与上面的错误相似。
解决方法:打开被动模式。
原因2:网站不支持list命令
解决方法:去该ftp的论坛,找到具体的电影链接,用flashget下载
使用Apache 的 FTP Client (JAVA开源包commons-net-2.0包)获取FTP服务器上的文件列表,写一个递归循环的list()方法.当 FTP 服务器上的文件数目过多时,运行程序
FTPFile[] fs = ftp.listFiles(pathName)
并且通过
for (FTPFile f : fs) {
// TODO something
}
获取目录列表,会出现如下的异常:
PORT 192,168,0,17,73,49
421 Timeout.
org.apache.commons.net.ftp.FTPConnectionClosedException: FTP response 421 received. Server closed connection.
at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:346)
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:490)
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:534)
at org.apache.commons.net.ftp.FTP.port(FTP.java:862)
at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:463)
at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2296)
at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2269)
at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2047)
因此,为了防止出现这个异常,只好采用获取RawListing的方式,然后通过正则来解析 String 得到目录列表和目录包含的文件详细信息。
=====================================
在使用了下面的部分就会经常出现问题
public static void list(FTPClient ftp, String pathName, String fileName) throws IOException {
System.out.println("----->进入目录: " + pathName)
if (i % 20 == 0) {
//ftp.changeWorkingDirectory(pathName)
try {
writeFile(s, fileName)
s = ""
} catch (Exception e) {
e.printStackTrace()
}
try {
Random r = new Random()
int n = r.nextInt(10)
Thread.sleep(n * 1000)
} catch (InterruptedException e) {
e.printStackTrace()
}
}
i++
// XXXXXXXXX DO something
}
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)