1
我有一个线程每5秒写入一个TCP套接字,连接到远程TCP端口(使用Java .net套接字,而不是NIO)。为了您的信息,我没有在套接字层上配置任何超时(S0,..),它具有默认值。如果连接到远程TCP端口 的网络电缆被移除,我的Java线程没有得到任何IO异常,而是一直写入套接字。网络断开连接不会在Java中抛出IOException
有人可以指导我为什么我没有得到这些例外?我想写入方法应该通过IOException尝试每5秒写入套接字。
问候,Rajib
请问Java做一些内部缓冲?操作系统肯定不会将其排队几秒钟 –
是的,Java中可能会有内部缓冲而不受超时限制。这取决于输出管道的配置方式(使用哪种包装)。 –
@Marko - 我的代码snipet - public void writeLine(String line)throws IOException {writer.write(line); writer.flush(); } - 我期待如果网络电缆断开IOException。 –