什么会导致套接字写入抛出连接超时异常

时间:2017-03-20 10:44:31

标签: java sockets

什么会导致write()方法抛出连接超时异常?

java.net.SocketException: Connection timed out

    at java.net.SocketOutputStream.socketWrite0(Native Method)
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109)
    at java.net.SocketOutputStream.write(SocketOutputStream.java:153)
    at org.apache.http.impl.io.SessionOutputBufferImpl.streamWrite(SessionOutputBufferImpl.java:126)
    at org.apache.http.impl.io.SessionOutputBufferImpl.write(SessionOutputBufferImpl.java:162)
    at org.apache.http.impl.io.ContentLengthOutputStream.write(ContentLengthOutputStream.java:115)
    at org.apache.http.entity.ByteArrayEntity.writeTo(ByteArrayEntity.java:116)

1 个答案:

答案 0 :(得分:0)

连接死亡(在通道的路上或对面),因为例如长时间没有发生通信。通过在套接字上应用keepAlives,可以解决此问题(如果需要)。

在绝大多数情况下 - 从我所看到的 - 这是正常行为异常,因为网络分区确实是从时间发生的(如果通信仅在您的数据中,这将是一个问题中心和例外很常见)。但如果它与服务器 - 客户端(浏览器)通信有关,那么应该没有什么可担心的。