ObjectOutputStream IOException / timeout on Android



我正在开发一个实时Android应用程序,并且在连接到TCP网络SocketObjectOutputStream上检测错误时存在问题。我在流上正常调用writeObject,然后调用flush,但是当接收节点意外死亡时,我需要立即(在几秒钟内)知道它。不幸的是,当节点关闭时,服务器对writeObjectflush的调用不会抛出IOException s,而是成功。

我假设在这些调用中发生了内部缓冲,这就是它成功的原因?在成功创建Socket后,是否有任何方法可以通过writeObject或其他方式知道节点何时关闭?

值得注意的是,由于性能原因,TCP Socket是开放的,因此为每个writeObject设置connect上的超时是不可能的。

时接收节点意外我需要知道这件事离开(几秒钟内)

你不能。TCP并没有告诉你。它不知道。它忙于缓冲和重试。它最终会超时,如果在此之后执行写操作,就会得到异常。这需要多长时间是无法控制的。

相关内容

  • 没有找到相关文章

最新更新