FTPFile[] fs = ftp.listFiles();报错 20

用java写了一个从ftp服务器上下载文件的方法,一直不报错,调试了一下,就是在:FTPFile[]fs=ftp.listFiles();报错,具体错误是:java.ne... 用java写了一个从ftp服务器上下载文件的方法,一直不报错,调试了一下,就是在:FTPFile[] fs = ftp.listFiles();报错,具体错误是:java.net.SocketException: Software caused connection abort: recv failed。
我用的是远程ftp服务器,在cmd里面能够正常登录和查看里面的文件,网上搜了很多,都没有什么鸟用,请哪位大神指点一下,我想知道错在哪了,要怎么改代码。很急……
展开
 我来答
51CTO学院
2015-11-28 · 中国最大的IT实战在线培训平台
51CTO学院
中国最大的IT实战在线教育培训平台。
向TA提问
展开全部
代码贴出来,以便定位问题。

java.net.SocketException: Software caused connection abort: recv failed

原因:服务端将连接关闭了(可能发生了异常),但客户端还在接收数据。

总结产生原因,在服务端/客户端单方面关闭连接的情况下,另一方依然以为
tcp连接仍然建立,试图读取对方的响应数据,导致出现
Software caused connection abort: recv failed的异常.

因此在receive数据之前,要先判断连接状态.
通过inputstream的available()方法来判断,是否有响应结果.
如果available()的返回值为0,说明没有响应数据,可能是对方已经断开连接,
如果available()的返回值大于0,说明有响应数据.
另外值得注意的是available()返回的值是非堵塞的,可以被多个线程访问
更多追问追答
追问

下面是我的代码,你上面说的我看过了,要怎么判断连接状态?

下面几行是:

      try { 

               ftp.disconnect(); 

           } catch (IOException ioe) { 

           } 

       } 

   } 

   return success; 

追答
在ftp.reveiveFile前调用ftp.getStatus();如果返回异常,那么就会抛出:FTPConnectionClosedException

这个方法用法如下:
public String getStatus()
throws IOException

Issue the FTP STAT command to the server.
Returns:
The status information returned by the server.
Throws:
FTPConnectionClosedException - If the FTP server prematurely closes the connection as a result of the client being idle or some other reason causing the server to send FTP reply code 421. This exception may be caught either as an IOException or independently as itself.
IOException - If an I/O error occurs while either sending a command to the server or receiving a reply from the server.
liuliutang777
推荐于2018-05-13
知道答主
回答量:1
采纳率:0%
帮助的人:1015
展开全部
试一下设置本地主动被动模式
client.enterLocalPassiveMode()被动 or
client.enterLocalActiveMode()主动
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匪匪心
2016-05-16
知道答主
回答量:11
采纳率:0%
帮助的人:1.1万
展开全部
请问一下您解决这个问题了么? 我也报了同样的错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式