【问题标题】:ObjectOutputStream IOException / timeout on AndroidAndroid 上的 ObjectOutputStream IOException / 超时
【发布时间】:2011-04-27 07:27:48
【问题描述】:

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

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

值得注意的是,出于性能原因,TCP Sockets 保持打开状态,因此无法为每个 writeObject 设置 connect 超时。

【问题讨论】:

  • 显示您的代码。其他人可以更轻松地帮助您。

标签: java android sockets networking stream


【解决方案1】:

当接收节点意外 死了,我需要正确地了解它 离开(几秒钟内)

你不能。 TCP不会告诉你。它不知道。它正忙于缓冲和重试。它最终会超时,如果您在此之后进行写入,您将得到异常。无法控制需要多长时间。

【讨论】:

    猜你喜欢
    • 2012-08-08
    • 2020-05-16
    • 2020-07-24
    • 2017-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-20
    • 2016-11-14
    相关资源
    最近更新 更多