Die Deserialisierung müsste ja genau umgekehrt mit einem ObjectInputStream, der auf einen ByteArrayInputStream (Javadoc) zugreift, arbeiten. Kann ich dem ByteArrayInputStream das Byte-Array auch auf einem anderen Wege als über den Konstruktor übergeben? Ansonsten müsste ich andauernd neue ByteArrayInputStreams erstellen, für jedes ankommende Paket einen neuen.
Nein. Aber du kannst dich von dem ByteArrayInputSream ableiten. Alle wesentlichen Membervariablen sind protected. In der abgeleiteten Klasse solltest du ein setBuf() oder so implemntieren können. Dort must du aber nicht nur den buf setzen, sondern auch mark, count und pos.
reset() reicht nicht, wenn zuvor ein mark() auf dem InputStream gerufen wurde; die reset Funktion Zitat "Resets the buffer to the marked position". Count muss ohnehin unabhängig von mark/reset gesetzt werden. Insgesamt muß die setBuf() Mehode alles tun, was sonst im ctor passiert. Einfach mal in der Doku vom [url=http://java.sun.com/j2se/1.5.0/docs/api/java/io/ByteArrayInputStream.html]ByteArrayInputStream[/url] nach "construct" suchen.