您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關java ftpclient問題,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
java ftpclient問題(sun.net.ftp.FtpClient)
1 sun.net.ftp.FtpProtocolException: PORT :501 PORT not allowed after EPSV ALL, active mode off 很多ftp服務器傳輸時采用被動模式,可用命令ftpClient.sendServer("PASV")解決。后面不要int reply = ftpClient.readServerResponse();否則問題依舊。
2 java.net.SocketException: Connection reset 導致此問題的出現是因為下載還沒結束,就提前關閉客戶端。也可以這樣理解:在客戶端與服務端建立了一個流通道,這個流通道一端進,一端出,在一端持續進的時候,你把出的一端給關了,這時就會報connection reset異常。當然,正常應當在流進結束以后,可往往在讀一個大文件的時候,如何判斷已結束呢?當然可以用命令ftpClient.sendServer("QUIT")解決。
/*FTP遠程命令列表 USER PORT RETR ALLO DELE SITE XMKD CDUP FEAT PASS PASV STOR REST CWD STAT RMD XCUP OPTS ACCT TYPE APPE RNFR XCWD HELP XRMD STOU AUTH REIN STRU SMNT RNTO LIST NOOP PWD SIZE PBSZ QUIT MODE SYST ABOR NLST MKD XPWD MDTM PROT
*/ /*在服務器上執行命令,如果用sendServer來執行遠程命令(不能執行本地FTP命令)的話,所有FTP命令都要加上rn ftpclient.sendServer("XMKD /test/bbrn");
//執行服務器上的FTP命令 ftpclient.readServerResponse一定要在sendServer后調用 nameList("/test")獲取指目錄下的文件列表 XMKD建立目錄,當目錄存在的情況下再次創建目錄時報錯 XRMD刪除目錄 DELE刪除文件 */[@more@]FtpClient ftpClient = new FtpClient();
// 創建FtpClient對象 ftpClient.openServer(server);
// 連接FTP服務器 ftpClient.login(user, password); if (path.length() != 0) ftpClient.cd(path); ftpClient.binary();
// ftpClient.sendServer("PASV"); // int reply = ftpClient.readServerResponse(); TelnetInputStream is = ftpClient.get("smit.log");
// TelnetInputStream is = ftpClient.list();
// TelnetInputStream is=ftpClient.nameList(path); int c; while ((c = is.read()) != -1) { System.out.print((char) c); } is.close(); // ftpClient.closeServer();
// 退出FTP服務器
// ftpClient.sendServer("GET smit.logrn"); int reply = ftpClient.readServerResponse(); ftpClient.sendServer("QUITrn");
看完上述內容,你們對java ftpclient問題有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。