シリアライズ可能を実装するクラスを作成しました。サーバークライアントアプリケーションを介してオブジェクトを受信すると、最初のインスタンスしか取得できません。オブジェクトが何度変更されても、objectInputStream は最初に送信されたものだけを受信します。なぜですか?
これは実際にはスイング アプリケーションです。私のアプリケーションでは、chatpart と gamepart が同時に実行されています。
パネルはゲーム オブジェクトをサーバー/クライアント オブジェクトに送信します
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;
...
}
ゲームクラスは、いくつかの String 属性を持つ単純なクラスであり、Serializable を実装します。