首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FTPClient::retrieveFile文件处的套接字异常

FTPClient::retrieveFile文件处的套接字异常
EN

Stack Overflow用户
提问于 2012-07-30 21:10:11
回答 1查看 1.5K关注 0票数 0

我有一个应用程序,应该连接到ftp服务器并下载一个文件。几个月前,一切都很正常,但现在我想在retrieveFile上更改一些部分并获得异常:

代码语言:javascript
复制
FTPClient ftp=ConnectToServer();
OutputStream stream = new FileOutputStream("TempServerLog.txt");
ftp.retrieveFile(FileName, stream);

这是StackTrace:

代码语言:javascript
复制
java.net.SocketOutputStream.socketWrite0(Native Method)
java.net.SocketOutputStream.socketWrite(Unknown Source)
java.net.SocketOutputStream.write(Unknown Source)
sun.nio.cs.StreamEncoder.writeBytes(Unknown Source)
sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source)
sun.nio.cs.StreamEncoder.implFlush(Unknown Source)
sun.nio.cs.StreamEncoder.flush(Unknown Source)
java.io.OutputStreamWriter.flush(Unknown Source)
java.io.BufferedWriter.flush(Unknown Source)
org.apache.commons.net.ftp.FTP.__send(FTP.java:501)
org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:475)
org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:552)
org.apache.commons.net.ftp.FTP.port(FTP.java:877)
org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:709)
org.apache.commons.net.ftp.FTPClient._retrieveFile(FTPClient.java:1677)
org.apache.commons.net.ftp.FTPClient.retrieveFile(FTPClient.java:1669)
Util.FtpServer.DownloadConfigurationFile(FtpServer.java:83)
Main.main(Main.java:40)

sendCommand中的命令是“端口127,0,0,1,192,226\r\n”。我在Win7机器上使用FileZilla FTP服务器。服务器运行得很好,我可以用相同的用户名/密码使用FileZilla客户端。

服务器日志告诉我:

代码语言:javascript
复制
(not logged in) (127.0.0.1)> Connected, sending welcome message...
(not logged in) (127.0.0.1)> 220-FileZilla Server version 0.9.37 beta
(not logged in) (127.0.0.1)> 220 Lokaler Test FTP Server - have fun!
(not logged in) (127.0.0.1)> USER peter
(not logged in) (127.0.0.1)> 331 Password required for peter
(not logged in) (127.0.0.1)> PASS 
peter (127.0.0.1)> 230 Logged on
peter (127.0.0.1)> disconnected.

所以我可以成功登录,但是在检索文件的过程中断开了连接。

我仍然有一个旧版本的编译jar,它看起来可以与我的本地服务器一起工作。我还尝试将Apache-Commons-net从2.2 (我在启动项目时使用)更新到当前版本3.1,但错误仍然存在。

我还从我的git库中检出了该项目的一个旧版本,它现在也有同样的问题。我在这个项目中使用了额外的Eclipse安装,因此整个环境不应该被更改,但我仍然收到这个套接字错误。

EN

回答 1

Stack Overflow用户

发布于 2012-08-01 17:48:02

看来,是Windows防火墙导致了这个问题。此外,它应该只是在公共网络上活动,当我连接到localhost时,它似乎以某种方式导致了问题。完全停用后,我的程序看起来可以工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11722284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档