今天就跟大家聊聊有关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")解决。
[@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问题有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网行业资讯频道,感谢大家的支持。