【发布时间】:2014-01-24 07:42:08
【问题描述】:
我正在使用 apache commons net FTPSClient 连接到本地 ftp(被动模式)。之后连接似乎挂起
> LIST
< 150 Opening ASCII mode data connection for /bin/ls.
我已向 FTPClient 类添加了一些日志记录,以查看它究竟挂在哪里。就是在这个方法中:http://grepcode.com/file/repo1.maven.org/maven2/commons-net/commons-net/3.3/org/apache/commons/net/ftp/FTPClient.java#FTPClient.initiateListParsing%28org.apache.commons.net.ftp.FTPFileEntryParser%2Cjava.lang.String%29
socket 被创建并且 socket.isBound() 返回 true,socket.isConnected() 而 socket.isInputShutDown() 返回 false。一切似乎都很好,直到 ftp 客户端实际尝试从输入流中读取,这会无限期地挂起,没有任何数据即将到来。由于使用 SSL,Wireshark 不是一个选项。
此时(由于套接字状态)我已经排除了防火墙问题,但我不知道可能导致挂起的原因。我假设它是服务器端的,我可以与运行它的人交谈,但如果我能告诉他们在哪里看会很有帮助。
更新
如果该问题被否决或投票赞成,我将不胜感激......在我看来,这似乎是一个完美的 stackoverflow 问题。
【问题讨论】:
-
呃,问题中的链接...?
-
那不是你的代码……那是你使用的 FTPClient 的代码
-
呃,当 FTPClient 尝试从套接字创建的输入流中读取时,它正在挂起......
标签: java ftp apache-commons-net