# StreamCorruptedException bei ObjectInputStream und ObjectOStream



## Vogi (14. Apr 2011)

Hi,

ich habe eine Netzwerkspiel geschreiben, das die Daten zwischen Klient und Server mittels ObjectOutputStream und ObjectInputstream austauscht. Das funktioniert soweit auch ganz gut, nachdem aber schätzungsweise ein paar hunderte Objekte ausgetauscht wurden, kommt es manchmal ploötzlich zu einer "java.io.StreamCorruptedException: invalid type code: 4B" beim ObjectInputstream des Servers.  Warum tritt die auf, und was kann ich dagegen tun? Muss man eventuell die Streams von Zeit zu Zeit reseten? Oder kann dies vllt einfach mit einem Übertragungsfehler (Spiel läuft über Internet, da können ja auch mal beschädige Daten übertragen werden) zu tun haben? Viel Dank schon mal für eure Hilfe!


----------



## FArt (14. Apr 2011)

+"java.io.StreamCorruptedException: invalid type code:" - Google-Suche

Wird zum Serialisieren der Objekte nur der Standardmechanismus verwendet, oder wird auch readObject/writeObject überschrieben und evtl. noch der Stream manipuliert?


----------



## Vogi (14. Apr 2011)

es wird der Standarmechanismus verwendet. Aber damit funktioniert es ja eigentlich auch immer, das Problem tritt ja nur manchmal auf. Was verstehst du unter am Stream manipulieren? Eigentlich mache ich da nichts, nur hin und wieder ein out.flush(), aber das könnte ich wohl auch weglassen, aber das sollte ja eig nichts ändern. oder?


----------



## Vogi (14. Apr 2011)

nebenbei, wann sollte man flush() oder reset() denn aufrufen? Eigentlich sollte es doch unnötog sein sie aufzurufen, oder?


----------



## FArt (14. Apr 2011)

Der ObjectStream wird außerhalb der Callback-Methoden verwaltet.

Ja, in der Regel ist flush() und reset() nicht nötig, das hängt aber vom Anwendungsfall ab.


----------



## Vogi (14. Apr 2011)

hm, die Exception tritt nun also auf. Wenn keiner weis, wieso sie kommt, dann muss ich halt mit ihr leben, was kann ich also nach der Excpetion tun? Stream closen und wieder neu öffnen?


----------

