Ich habe eine urspruenglich kleine Anwendung programmiert, deren Umfang mir etwas aus den Haenden geglitten ist.. jedenfalls habe ich jetzt ein 4000-Zeilen umfassendes Server-Client-Spiel, im Grunde sowas wie "Pong".
Ich hab eine Client und eine Serveranwendung mit Sockets realisiert. Mit Hilfe viel zu vieler Threads
)) kommunizieren beide Programme. Geplant war das ganze folgendermassen: Der Client schicht einfach einen int-Wert an den Server, der die aktuelle Position des Schlaegers angibt. Unabhaengig davon, schickt der Server die gesamte 'Pong'-Klasse an den Client, der mit dieser seine eigene ueberschreibt. Dazu verwende ich einen ObjectInputStream, bzw einen ObjectOutputStream. Allerdings kommen die Objekte falsch an. Ich hab beide Programme durch den Debugger laufen lassen:
Server-Code
Client-Code:
Testweise hab ich mir selbst Methoden zur (De-)Serialisierung geschrieben, sowas wie String toMessage() und void fromMessage(). Damit klappt es seltsamerweise.
Noch was: Komischerweise klappt die UEbertragung des ersten Objekts. Alles was ich danach schicke ist leer
Hat da jemand eine Idee?
Ich hab eine Client und eine Serveranwendung mit Sockets realisiert. Mit Hilfe viel zu vieler Threads
Server-Code
Code:
try{
// Hier hat das Objekt laut Debugger die richtigen Daten
Object o = messageStack.pop();
out.writeObject(o);
}
catch(IOException e)
//..
Code:
try{
// Hier kommt zwar ein Objekt des richtigen Typs an, allerdings sind alle Felder default
// Also genauso wie sie nach dem Aufruf des Standardkonstruktors aussaehen.
Object o = in.readObject();
parseObject(o);
}
catch(IOException e)
//..
Noch was: Komischerweise klappt die UEbertragung des ersten Objekts. Alles was ich danach schicke ist leer
Hat da jemand eine Idee?