Normal
Das Problem dabei ist ja: Wann weisst du dass du genug Daten empfangen hast?Ein Protokoll muss nicht riesig oder aufwendig sein.Du kannst das Objekt ja prima in einen ByteArrayOutputStream serialisieren und weißt dann anhand der Array-Größe wie groß das Objekt ist.Bevor du nun das Objekt über's Netzwerk jagst, schickst du einfach die größe des byte-Arrays als Integer-Wert in Form von 4 bytes, gefolgt vom eigentlichen Objekt.Auf Empfängerseite liest du dann immer zuerst 4 bytes, formst daraus wieder einen Integer und weiß dann, wieviele bytes du noch empfangen musst, bevor du mit dem readObject() beginnen kannst. Und das beste daran ist: Du kannst deinen Puffer in exakt der größe allokieren wie du ihn brauchst.- Alex
Das Problem dabei ist ja: Wann weisst du dass du genug Daten empfangen hast?
Ein Protokoll muss nicht riesig oder aufwendig sein.
Du kannst das Objekt ja prima in einen ByteArrayOutputStream serialisieren und weißt dann anhand der Array-Größe wie groß das Objekt ist.
Bevor du nun das Objekt über's Netzwerk jagst, schickst du einfach die größe des byte-Arrays als Integer-Wert in Form von 4 bytes, gefolgt vom eigentlichen Objekt.
Auf Empfängerseite liest du dann immer zuerst 4 bytes, formst daraus wieder einen Integer und weiß dann, wieviele bytes du noch empfangen musst, bevor du mit dem readObject() beginnen kannst. Und das beste daran ist: Du kannst deinen Puffer in exakt der größe allokieren wie du ihn brauchst.
- Alex