Dag: EOFException

Beitrag lesen

Besten Dank!

Was du suchst, ist die Klasse java.io.ByteArrayOutputStream.

In der Tat! Aber gerade zur Osterzeit sind manche Sachen besonders gut versteckt. Vor allem wenn man an der falschen Stelle sucht.

Falls du nicht weiter kommst, meld dich nochmal.

Prinzipiell funktioniert die Sache schon, wenn ich die De- und die Serialisierung innerhalb einer Klasse mache keine Schwierigkeiten. Aber wenn ich die Bytes auf die Reise schicke habe ich folgendes Problem:

...
  byte data[] = new byte[30000];
  packet = new DatagramPacket(data, data.length);
  fromSocket.receive(packet);
  ByteArrayInputStream bais = new ByteArrayInputStream(packet.getData());
  ObjectInputStream ois = new ObjectInputStream(bais);
  ois.readObject();
  ...

Hier bleibt er mir immer an der letzten Zeile hängen, mit dieser Meldung:

java.io.EOFException

Diese Meldung besagt meinen Infos zufolge

a) dass das Ende bevor es erwarted wurde erreicht ist;

oder b) dass ich versucht habe ein Object als primitiven Typ zu deserialisieren (hab ich doch nicht, oder etwa doch?).

Damit kann ich also nix anfangen. Zunächst dachte ich ja eher, dass ich die Bytes meines serialisierten Objects - auf Senderseite - nicht komplett in ein UDP-Paket reinbekomme. Als ich die Anzahl der Bytes, dann mit

baos.toByteArray().length   //ByteArrayOutputStream -> baos

abgefragt habe, lag die gerade mal bei ungefähr 115. da müssten die 30000 empfängerseitig doch gut und gerne hinhauen.

Danke und Gruss