Danielku15
Erfahrenes Mitglied
Hallo Miteinander.
Ich habe gerade ein gröberes Problem bei unserer Semesterarbeit. Es handelt sich dabei um eine Server-Client Applikation welche über "interface INetworkMessage extends Serializable" Implementationen miteinander kommunizieren. Die Objekte werden über ObjectOutputStream und ObjectInputStream serialisiert. Gesendet werden die Instanzen über :
Gelesen werden die Objekte dann wieder mit
Seltsamerweise wird beim Lesen diese Exception geworfen:
Woran kann das Problem liegen? Wird evtl. aufs Versehen wo der Socket/Stream geschlossen oder woher kann diese EOFException kommen?
Bin echt mit meinem Latein am Ende.
Kann mir da jemand ne Hilfestellung geben?
Grüße Daniel
Ich habe gerade ein gröberes Problem bei unserer Semesterarbeit. Es handelt sich dabei um eine Server-Client Applikation welche über "interface INetworkMessage extends Serializable" Implementationen miteinander kommunizieren. Die Objekte werden über ObjectOutputStream und ObjectInputStream serialisiert. Gesendet werden die Instanzen über :
Java:
private void submitMessage(INetworkMessage data) {
try {
_objectOutputStream.writeUnshared(data);
_objectOutputStream.flush();
} catch (IOException e) {
e.printStackTrace();
_connectionLost.fireEvent(new NetworkGameClientEventArgs(
getClientUid()));
setRunning(false);
}
}
Gelesen werden die Objekte dann wieder mit
Java:
Object o = _objectInputStream.readUnshared();
if (o == null) continue;
if (!(o instanceof INetworkMessage)) {
System.out.printf("Got an unknown object: %s%n", o);
continue;
}
INetworkMessage msg = (INetworkMessage) o;
...
Seltsamerweise wird beim Lesen diese Exception geworfen:
Java:
java.io.StreamCorruptedException: invalid type code: 00
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readUnshared(Unknown Source)
at at.kubatsch.util.NetworkMessageController.messageReaderLoop(NetworkMessageController.java:202)
at at.kubatsch.util.NetworkMessageController.access$0(NetworkMessageController.java:195)
at at.kubatsch.util.NetworkMessageController$1.run(NetworkMessageController.java:110)
at java.lang.Thread.run(Unknown Source)
java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readUnshared(Unknown Source)
at at.kubatsch.util.NetworkMessageController.messageReaderLoop(NetworkMessageController.java:202)
at at.kubatsch.util.NetworkMessageController.access$0(NetworkMessageController.java:195)
at at.kubatsch.util.NetworkMessageController$1.run(NetworkMessageController.java:110)
at java.lang.Thread.run(Unknown Source)
Woran kann das Problem liegen? Wird evtl. aufs Versehen wo der Socket/Stream geschlossen oder woher kann diese EOFException kommen?
Bin echt mit meinem Latein am Ende.
Kann mir da jemand ne Hilfestellung geben?
Grüße Daniel