Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ObjectOutputStream上的异常捕获_Java_Ubuntu_Client Server_Objectoutputstream - Fatal编程技术网

Java ObjectOutputStream上的异常捕获

Java ObjectOutputStream上的异常捕获,java,ubuntu,client-server,objectoutputstream,Java,Ubuntu,Client Server,Objectoutputstream,在我的软件中,我需要通过ObjectOutputStream在客户端和服务器之间发送消息 sender方法的核心如下所示: .... try { objWriter.writeUnshared(bean); objWriter.flush(); } catch (Exception e) { .... } ... 在windows XP上运行我的应用程序时,如果删除网线,WriteUnShared会引发异常 现在,我正在尝试将我的应用程序运行到ubuntu 12.1

在我的软件中,我需要通过ObjectOutputStream在客户端和服务器之间发送消息

sender方法的核心如下所示:

....

try {
    objWriter.writeUnshared(bean);
    objWriter.flush();
} catch (Exception e) {
    ....
}

...
在windows XP上运行我的应用程序时,如果删除网线,WriteUnShared会引发异常

现在,我正在尝试将我的应用程序运行到ubuntu 12.10中,如果我移除电缆,该方法不会抛出任何东西


任何提示???

是否以及何时获得异常取决于:

  • 您端的套接字发送缓冲区有多大
  • 对等端的套接字接收缓冲区有多大
  • 您已经写入了多少未确认的数据
  • 你写那篇文章有多久了
  • TCP堆栈的内部计时器

您可以从Java控制的唯一部分是您自己的套接字发送缓冲区。因此,异常何时以及是否交付是完全不可预测的。因此,您不能编写依赖于特定行为的应用程序。

是的,但按照writeUnshared和flush调用的方法,我看到调用了write(OutputStream.class:106),如果流关闭,此方法必须生成异常。。。因此,我使用这些信息来检查我的频道是否处于活动状态。。问题是,在ubuntu中,即使我拔下电缆,频道似乎还是打开的

所以你想在ubuntu上也得到例外吗?是的。。如果出现异常,我需要重试发送。。并最终关闭连接!java.io.ObjectOutputStream,初始化为:“new ObjectOutputStream(new BufferedOutputStream(socket.getOutputStream())”@Fildor否,他没有使用NIO,他使用的是java.io.ObjectOutputStream。一个毫无意义的问题。@ejpooops。你说得对。在过去的几天里我在两者之间跳跃。。。