gpt4 book ai didi

Java EOFException 服务器/客户端 TCP 应用程序

转载 作者:行者123 更新时间:2023-12-02 00:22:18 25 4
gpt4 key购买 nike

我在我的应用程序中运行 2 个线程。一种用于检查传入数据包,另一种用于处理和发送数据包。他们都在同一流上执行此操作。

示例 1:

while (connection open) {
in.readObject() instanceof ...
}

示例 2:

while (connection open) {
processPacket(in)
}

我很确定 EOFException 是当线程尝试同时使用流时发生的。这不是一个恒定的 EOF,但就像每 1 秒我得到一个 EOF 一样,其余的工作正常。所以这就是为什么我怀疑它们重叠并尝试同时使用流。

如果这是问题所在,有人知道如何同步它们以完成另一个任务,同时仍然保持当前的更新速度并使用两个线程?

我需要两个线程,因为传入检查会排队等待,直到收到数据包,并且我需要服务器不断发送进程并检查数据包。

如何修复 EOFException?

最佳答案

如果您收到 EOFException,通常意味着另一方挂断了。您通常会在阅读面获得这些内容。

这是一个类似的SO question

编辑1:问题实际上是为什么套接字关闭。它可能是出于多种原因,例如服务器端的可编程计时器在 X 分钟内检查没有数据、防火墙关闭连接、网络中断等。

关于Java EOFException 服务器/客户端 TCP 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10720839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com