Java objectInputStream始终仅从序列化类读取第一个实例

Java objectInputStream始终仅从序列化类读取第一个实例,java,serialization,client-server,objectinputstream,Java,Serialization,Client Server,Objectinputstream,我已经创建了一个实现可序列化的类。当我通过服务器客户端应用程序接收到它的对象时,我只得到它的第一个实例, 然后,无论对象被修改了多少次,objectInputStream都只接收第一次发送的内容。为什么 这实际上是一个swing应用程序 我的应用程序上同时运行了一个chatpart和一个gamepart 面板将我的游戏对象发送到服务器/客户端对象 this.getServer1().sendGame(panel1.getMyGame()); public void sendGame(Gam

我已经创建了一个实现可序列化的类。当我通过服务器客户端应用程序接收到它的对象时,我只得到它的第一个实例, 然后,无论对象被修改了多少次,objectInputStream都只接收第一次发送的内容。为什么

这实际上是一个swing应用程序 我的应用程序上同时运行了一个chatpart和一个gamepart

面板将我的游戏对象发送到服务器/客户端对象

this.getServer1().sendGame(panel1.getMyGame());


 public void sendGame(Game g1) throws IOException{
       output.writeObject(g1);
       output.flush();
   }
服务器或客户端部分正在线程上运行

它从gamepart或chatpart读取数据,chatpart工作正常

Object next = input.readObject();
if (next instanceof Game) {
    game1 = (Game)next;
    panel1.setHisGame(game1);
}
else if (next instanceof String) {
    message = (String)next;
    ...
}
gameclass只是一个简单的类,带有一些字符串属性,实现可序列化

我已经解决了这个问题。
在面板将mygameobject发送到服务器之前,我必须创建整个新对象并用mygameobject的数据填充它。这就是它的工作方式。

你能给我们看一下代码和一个结果如何出错的例子吗?序列化数据是“冻结”的:一旦对象被写入OOS(它被序列化为特定的二进制表示形式并被发送出去),并且将来对对象的更改不会神奇地改变以前的输出。如果多个对象(依次)写入OOS,则必须(依次)从OIS读取每个对象。。(我不明白那是什么问题。)这是一种方法。请看副本。