gpt4 book ai didi

通过 Socket 的 Java Swing 定时器同步

转载 作者:太空宇宙 更新时间:2023-11-04 07:10:22 24 4
gpt4 key购买 nike

我正在类的两个实例之间制作一个图画游戏。一个实例是主机(Socket 的主机),另一个是访客。

在程序期间,几个 Swing 定时器被初始化并运行。这些计时器需要在两个设备上以相同的速度运行。同步两个设备的最佳方法是什么?

  • 通过 Socket 同步启动计时器
  • 通过 Socket 同步定时器的每次更新

一个简短的示例 - 计时器必须倒计时 60 秒(60 秒后 -> timer.stop(),每秒 JLabel 都会更新秒数)。

我是否需要通过套接字发送 JLabel 的每个更新,而不是在 guest 上初始化计时器在两个设备上初始化计时器,但同步 timer.start()(忽略连接延迟)

最佳答案

连接的延迟几乎肯定会使两个 JVM 中的任何计时偏差相形见绌,特别是因为总共只涉及 60 个计时器事件。因此我建议倒计时期间不要进行网络同步。

如果两个玩家中的一个由于 GC、线程调度、虚拟内存交换等不可控因素而经历暂停,则可能会出现这种异常(exception)情况。如果您想涵盖这些细节,那么您将需要双向同步,因为这些事件可能发生在任一端。

关于通过 Socket 的 Java Swing 定时器同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20745355/

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