gpt4 book ai didi

Java 套接字 : Read/receive the same instance multiple times after change values: ObjectInputStream. readObject()

转载 作者:行者123 更新时间:2023-11-30 04:48:50 25 4
gpt4 key购买 nike

我正在开发一个带有服务器的简单多人游戏。这个概念是在玩家每次回合后将对象“游戏”发送给所有客户端。它包含客户需要的所有信息。第一次效果很好。第二次之后,客户端中对象的值不会更改。已确认这些值在服务器上已更改,并且在读取之前我还在客户端将对象设置为 null。我对 Java 没有经验。 “Java”是否可能认为因为它是同一个实例,所以它不会读取新值而只是重新激活旧值(可能来自缓存)?

客户端代码

this.game = null;
this.game = (Game) ois.readObject();

服务器代码

aCPS.get(i).oos.writeObject(game);

游戏

public class Game implements Serializable {...}

如果您需要更多代码,请告诉我。谢谢。

最佳答案

如果您将相同的对象写入ObjectOutputStream而不重置,您将获得相同的对象。这就是 Java 序列化处理任意对象图的方式。

要解决此问题,最好使用新的 ObjectOutputStream。您可以对其调用reset。或者使用不可变对象(immutable对象)或使用其他东西进行序列化。

关于Java 套接字 : Read/receive the same instance multiple times after change values: ObjectInputStream. readObject(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10306142/

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