InputStream (Socket) mit BufferedInputStream puffern

Status
Nicht offen für weitere Antworten.

Dandro

Mitglied
Nabend,

ich stehe gerade vor einem kleinen Problem. Ich möchte gerne die ankommenden Daten eines InputStreams zu puffern, da ich gerne Pakete schnüren möchte ... Da aber nicht immer alle Paketdaten zum selben Zeitpunkt ankommen, möchte ich natürlich erstmal die Daten puffern, damit ich feststellen kann OB ein Paket schon vollständig ist, und wenn ja es nach und nach einlesen. Aber irgendwie wird bei jeder "read" operation der Puffer vom BufferedInputStream neu gefüllt, sprich die alten Daten verworfen? Kann das sein? Wie wirke ich dem entgegen?
 
ja klar, soweit bin ich auch schon 🙂 Das Problem war, dass ich schaun musste ob schon genügend Daten im Stream liegen um ein Packet zu bilden. Jetzt kommt der Knackpunkt, die ersten beiden Bytes eines Packets geben die Size des zu lesenden Packets an, dass heißt ich müsste die ersten beiden Bytes "lesen" aber ohne sie aus dem Stream zu entfernen, und dann nochmal per available fragen ob schon "size" bytes im Stream liegen.

Nunja, habe mir nun selbst eine Klasse gebastelt welche das Puffern so übernimmt, wie ich es gerne hätte. Denn BufferedInputStream puffert die Daten nur temporär um einen Geschwindidkeitsvorteil zu erzielen. Trotzdem danke
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben