我正在一个类的两个实例之间制作一个Pictionary游戏。一个实例是主机(套接字的主机),另一个实例是访客。

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

  • 通过套接字
  • 同步计时器的启动
  • 通过套接字
  • 同步计时器的每次更新

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

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

    最佳答案

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

    如果两个参与者之一由于不可控制的因素(例如GC,线程调度,虚拟内存交换等)而暂停,则可能会出现特殊情况。如果您想涵盖这些细节,则需要双向同步,因为这些事件可能在任一端发生。

    10-07 19:29
    查看更多