Im Grunde richtig. Auf den Rückgabewert vom Receive kannst du dich in keinem Fall verlassen ob alles "gesendete auch angekommen ist." Der sagt ja nur aus, ob momentan der Puffer noch etwas hat, oder nicht.
Um den kompletten Request wirklich zu bekommen müsstest du immer beim Event den Puffer leer lesen, das Empfangene an einen temporären Speicher dranhängen und dann schauen ob du einen "ganzen" Request darin findest.
Außerdem hab ich bisher festgestellt, dass es auch darauf ankommt, "wann" man genau ReceiveNetworkData aufruft.
nehmen wir mal an, ich sende als Client viele 100 Byte Blöcke. Hab ichs direkt nach dem Event schon gemacht (was ja der Normalfall sein dürfte) kamen z.B. wirklich nur 100 Byte an (Trotz großer Buffer Größe im ReceiveNetworkData). Würde man zwischen dem #PB_NetworkEvent_Data und dem ReceiveNetworkData nur als Beispiel ein Delay(2000) schreiben ist es schon viel warscheinlicher, dass man mehr empfängt. Ist schwierig zu erklären, aber da das ganze Empfangen von Paketen insgesamt immer asynchron im Hintergrund geschieht, kann ReceiveNetworkData nur komplette, empfangene Pakete ausgeben. Aber davon eben soviele wie es gerade im Hintergrundbuffer hat (an den man nicht direkt heran kommt).
Andere Verdeutlichung: Bekommt man ein "Hier ist ein Paket für sie" und schaut sofort in den Briefkasten findet man ein einziges Paket. Bekommt man die Meldung und schaut erst zwei Stunden später in den Briefkasten, könnte es sein, dass der Postbote in der Zwischenzeit noch ein paar mehr reingeworfen hat und man diese aber dennoch in einem Gang zum Briefkasten (ReceiveNetworkData bis der Buffer leer ist) holen kann.
