我们在AIX上使用commons-net-1.4.1.jar和java5_64。我在FTP服务器上列出文件时遇到以下异常。
java.net.SocketTimeoutException: Accept timed out at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:427) at java.net.ServerSocket.implAccept(ServerSocket.java:466) at java.net.ServerSocket.accept(ServerSocket.java:434) at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:502) at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2488)
此错误是间歇性的,因为该过程每天运行大约60次,我得到错误2或3次,其余时间运行正常。
我在互联网上找到了一种可能的解决方案,可以将连接模式从主动改为被动,但这也无济于事。
你能帮助我吗,我不知道原因是什么。
答案 0 :(得分:0)
您尝试列出文件的远程服务器根本就没有响应...(这是一种相当常见的情况)。此时他们的互联网连接已关闭,或者您自己的互联网连接已关闭,或服务器已饱和并拒绝连接,或任何可能的情况。
(每次进程成功时,您是否正确关闭与服务器的连接?服务器可能拒绝连接,因为它认为您已连接)
答案 1 :(得分:0)
如果连接中的所有内容都正确,即每台服务器的被动和ASCII,并且仍然出现套接字超时,则增加ftpClient.setTimeout(220)下的连接时间;