1

我有一个线程每 5 秒写入一次 TCP 套接字,连接到远程 TCP 端口(使用 Java .net 套接字,而不是 NIO)。为了您的信息,我没有在套接字层上配置任何超时(S0,..),它具有默认值。如果连接到远程 TCP 端口的网络电缆被移除,我的 java 线程没有收到任何 IO 异常,而是继续写入套接字。

有人可以指导我为什么我没有得到这些例外吗?我猜 write 方法应该通过 IOException 尝试每 5 秒写入一次套接字。

问候, 拉吉布

4

1 回答 1

1

这完全取决于您写入套接字的数量,以防您不定期刷新。如果您每 5 秒只写入几个字节,则缓冲区可能确实需要相当长的时间才能自动填充和刷新。异常应该最终出现。如果您确实刷新,那么您可能会忽略另一个网络管道,例如 WiFi,并且传输只是故障转移到该管道。

于 2012-10-15T11:08:58.307 回答