❶ 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類可以實現客戶端和服務之間的文件傳輸,但是我如果使用這種方式的話,就得將一台伺服器上的文件傳到我本地,再將這個文件傳到另一台伺服器上,感覺這中間多了一步操作;