【问题标题】:what is the cause for java.net.SocketTimeoutException: Read timed outjava.net.SocketTimeoutException 的原因是什么:读取超时
【发布时间】:2014-03-20 15:30:22
【问题描述】:

我写了一个java代码来连接FTP。我用ftp4j-1.7.2 jar通过java连接FTP。我用String[] "it.sauronsoftware.ftp4j.FTPClient.connect(String arg0)" 和 "it.sauronsoftware.ftp4j.FTPClient.disconnect(boolean arg0)" 方法来连接和断开与 FTP 的连接。当我在 java 1.5 中运行它时代码工作正常,但它正在抛出 " java.net.SocketTimeoutException: Read timed out" 当我在 java 1.6 中运行它时断开连接。谁能告诉我解决方案。

错误日志:

Stack:
    java.net.SocketTimeoutException: Read timed out
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
    at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
    at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
    at sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:107)
    at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:93)
    at java.io.InputStreamReader.read(InputStreamReader.java:151)
    at it.sauronsoftware.ftp4j.NVTASCIIReader.readLine(NVTASCIIReader.java:105)
    at it.sauronsoftware.ftp4j.FTPCommunicationChannel.read(FTPCommunicationChannel.java:142)
    at it.sauronsoftware.ftp4j.FTPCommunicationChannel.readFTPReply(FTPCommunicationChannel.java:187)
    at it.sauronsoftware.ftp4j.FTPClient.disconnect(FTPClient.java:1133)

【问题讨论】:

  • 您正在尝试连接,但服务器不可用或您的 url 错误
  • 不,当我在 java 1.5 中运行代码时,我能够成功连接和断开连接,当我们在 java 1.6 中运行代码时我们能够连接,但我们无法断开连接
  • @anfy2002us 从堆栈跟踪中可以清楚地看出他正在尝试断开连接,这意味着他的连接成功,因此服务器 i> 可用 并且 他的 URL 也是正确的。请阅读问题。
  • 我是在调试一个 JAVA 应用程序时来到这里的,其中这个错误是由进程耗尽堆内存引起的。这里可能不是这种情况,但它是一个需要调查的指针。

标签: java ftp socketexception connection-timeout


【解决方案1】:

这可能是 IPv 问题。试试这个标志:

-Djava.net.preferIPv4Stack=true 

【讨论】:

  • 这不是一个答案,而是更多的评论。
  • IPv6 问题会导致连接问题,而不是在断开连接期间读取超时。 -1
【解决方案2】:

这意味着在超时期间没有数据到达。在这种情况下,不回复断开连接请求。很明显你正在使用的库设置了读取超时,或者你可能是,而且它太短了,看看你是否可以增加它。

我无法解释不同 JDK 的不同行为,除非在某处修复了读取超时,但我从来没有意识到任何读取超时问题,我一直回到 1.1。 2.

【讨论】:

  • 但我可以在 java 1.5 中运行它,但遇到 java 1.6 的问题,我可以知道可能是什么问题。
猜你喜欢
  • 2011-01-29
  • 2011-07-13
  • 2014-07-23
  • 2015-10-03
  • 1970-01-01
  • 1970-01-01
  • 2017-02-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多