0

我制作了一个实现可序列化的类。当我通过我的服务器-客户端应用程序接收它的对象时,我只得到它的第一个实例,那么无论对象被修改多少次,objectInputStream 只接收第一次发送的那个。为什么?

这实际上是一个摇摆应用程序在我的应用程序上同时运行一个聊天部分和一个游戏部分。

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

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


 public void sendGame(Game g1) throws IOException{
       output.writeObject(g1);
       output.flush();
   }

服务器或客户端部分在线程上运行

它从游戏部分或聊天部分读取数据,聊天部分工作正常

Object next = input.readObject();
if (next instanceof Game) {
    game1 = (Game)next;
    panel1.setHisGame(game1);
}
else if (next instanceof String) {
    message = (String)next;
    ...
}

gameclass 只是一个简单的类,具有一些 String 属性和实现 Serializable

4

1 回答 1

0

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

于 2012-10-08T13:39:04.450 回答