objectInputStream始终只读取serializabled类中的第一个实例

时间:2012-10-07 22:25:44

标签: java serialization client-server objectinputstream

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

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

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

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

的简单类

1 个答案:

答案 0 :(得分:0)

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