Ftp.listFiles()报错NoSuchMethodError,如何解决?

服务器连接主机端后获取文件列表,FTPFile[] ff = ftpclient.listFiles("*");这句报错,NoSuchMethodError。包是common-net-3.6.jar,和ftp的包,IDE是Eclipse.

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

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

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

因此在receive数据之前,要先判断连接状态.
通过inputstream的available()方法来判断,是否有响应结果.
如果available()的返回值为0,说明没有响应数据,可能是对方已经断开连接,
如果available()的返回值大于0,说明有响应数据.
另外值得注意的是available()返回的值是非堵塞的,可以被多个线程访问
温馨提示:内容为网友见解,仅供参考
无其他回答

Ftp.listFiles()报错NoSuchMethodError,如何解决?
原因:服务端将连接关闭了(可能发生了异常),但客户端还在接收数据。总结产生原因,在服务端\/客户端单方面关闭连接的情况下,另一方依然以为 tcp连接仍然建立,试图读取对方的响应数据,导致出现 Software caused connection abort: recv failed的异常.因此在receive数据之前,要先判断连接状态.通过inputstream的a...

相似回答