今天就跟大家聊聊有关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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。