❶ ftp response 421 received.server closed connection 怎么解决
使用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
}
❷ java中在linux环境下,运用org.apache.commons.net.ftp.FTPClient包,下载FTP服务上的文件,报出异常:
1,确保手工用FTP客户端连接没问题。
2,手工没问题,程序也应该没问题才是。
3,确保程序中安全CLOSE连接,FTP服务器也是有连接限制的。
4,适当考虑重起一下FTP服务器。
❸ FTP报: 421 servers are not available,remote server has closed connection
先确认端口是否通畅,然后核对ftp主被动模式,windows ftp应该只支持主动模式,需要开放额外很多端口,基本在机房是没法用的,过不了防火墙。
❹ linux 终端 上传ftp 出现421 server not available
关闭防火墙,有可能是防火墙拦截导致出错
❺ 连接FTP时,提示421 Timeout (120 seconds): closing control connection.然后就断开连接了。
对,就是到时间了。这个连线时间是可以在服务器上设置的
❻ Java的ftp操作方法有哪几种
FTP(File Transfer Protocol)是 Internet 上用来传送文件的协议(文件传输协议)。它是为了我们能够在 Internet 上互相传送文件而制定的的文件传送标准,规定了 Internet 上文件如何传送。也就是说,通过 FTP 协议,我们就可以跟 Internet 上的 FTP 服务器进行文件的上传(Upload)或下载(Download)等动作。
和其他 Internet 应用一样,FTP 也是依赖于客户程序/服务器关系的概念。在 Internet 上有一些网站,它们依照 FTP 协议提供服务,让网友们进行文件的存取,这些网站就是 FTP 服务器。网上的用户要连上 FTP 服务器,就要用到 FPT 的客户端软件,通常 Windows 都有“ftp”命令,这实际就是一个命令行的 FTP 客户程序,另外常用的 FTP 客户程序还有 CuteFTP、Ws_FTP、FTP Explorer等。
要连上 FTP 服务器(即“登陆”),必须要有该 FTP 服务器的帐号。如果是该服务器主机的注册客户,你将会有一个 FTP 登陆帐号和密码,就凭这个帐号密码连上该服务器。但 Internet 上有很大一部分 FTP 服务器被称为“匿名”(Anonymous)FTP 服务器。这类服务器的目的是向公众提供文件拷贝服务,因此,不要求用户事先在该服务器进行登记注册。
Anonymous(匿名文件传输)能够使用户与远程主机建立连接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户。用户使用特殊的用户名“anonymous”和“guest”就可有限制地访问远程主机上公开的文件。现在许多系统要求用户将Emai1地址作为口令,以便更好地对访问进行跟综。出于安全的目的,大部分匿名FTP主机一般只允许远程用户下载(download)文件,而不允许上载(upload)文件。也就是说,用户只能从匿名FTP主机拷贝需要的文件而不能把文件拷贝到匿名FTP主机。另外,匿名FTP主机还采用了其他一些保护措施以保护自己的文件不至于被用户修改和删除,并防止计算机病毒的侵入。在具有图形用户界面的 WorldWild Web环境于1995年开始普及以前,匿名FTP一直是Internet上获取信息资源的最主要方式,在Internet成千上万的匿名PTP主机中存储着无以计数的文件,这些文件包含了各种各样的信息,数据和软件。 人们只要知道特定信息资源的主机地址, 就可以用匿名FTP登录获取所需的信息资料。虽然目前使用WWW环境已取代匿名FTP成为最主要的信息查询方式,但是匿名FTP仍是 Internet上传输分发软件的一种基本方法
❼ java中怎么实现ftp服务器
我知道apache有个commons net包,其中的FTPClient类可以实现客户端和服务之间的文件传输,但是我如果使用这种方式的话,就得将一台服务器上的文件传到我本地,再将这个文件传到另一台服务器上,感觉这中间多了一步操作;