gpt4 book ai didi

java - 连接阶段后 "java.io.IOException: Connection timed out"的含义

转载 作者:行者123 更新时间:2023-11-30 09:03:53 52 4
gpt4 key购买 nike

可能是相关的:Difference between Connection timed out and Read timed out

我已经使用 nio 编写了一个 java 服务器应用程序。

我将客户端连接到我的服务器应用程序并拔下了客户端的网络电缆。在服务器端,我没有立即收到任何异常,但过了一段时间(8 分钟左右),我收到了“IOException:连接超时”

这是部分堆栈跟踪:

java.io.IOException: Connection timed out
at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:225)
at sun.nio.ch.IOUtil.read(IOUtil.java:198)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:375)
........

直到此时,当我看到 netstat 输出时,我看到这个特定客户端连接的套接字状态显示为 ESTABLISHED。

问题是:

  1. 这个超时是可配置的吗?

  2. 为什么 netstat 输出显示套接字状态为 ESTABLISHED?理想情况下,它应该是 CLOSE_WAIT(因为客户端断开连接)

最佳答案

  1. 不,它不可配置。这是重传超时的结果。除非应用程序继续写入,或者在断开连接发生时有待处理的写入,否则根本不会发生。

  2. 它不应该是 CLOSE_WAIT,因为没有收到 FIN。因此,它应该被确立。

关于java - 连接阶段后 "java.io.IOException: Connection timed out"的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25490451/

52 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com