Forum: Netzwerke
by Sir Rufo,
30. Mär 2011
Allerdings sollte man fairerweise dazu bemerken, dass dieses nur bei einem Client sauber funktioniert.
Somit würde man pro Socket eine solche Variable (LaengeNaechsteNutzdaten) benötigen
Forum: Netzwerke
by Sir Rufo,
30. Mär 2011
Wenn die Daten verschickt werden, ermittelt der Sender die Größe der Nachricht (ein Integer) und schickt diesen als erstes auf die Reise. Direkt danach die Daten.
Der Empfänger liest jetzt erst den Integer aus dem Buffer und weiß wie groß die Nachricht ist und empfängt - bzw. Wartet bis alle Daten da sind - die Nachricht.
Forum: Netzwerke
by Sir Rufo,
29. Mär 2011
Und genau hier liegt der Fehler
ReceiveLength sagt dir wieviel empfangen wurde!
Wenn das die Daten sind die zum Socket unterwegs sind (i = Integer-Header, d = Daten)
iiiiddddddddddddddddddddddddddddiiiiddddddddddiiiidddddddddd
Dann wird jedes Mal, wenn etwas empfangen wird, das Event aufgerufen.
Nun kann es eben auch passieren, dass eben immer nur ein Teil der Daten ankommt.
Forum: Netzwerke
by Sir Rufo,
29. Mär 2011
Wenn der Client Daten an den Server sendet und erst die Länge der Nachricht verschicken soll, dann muss der Client doch wissen, wie groß die Nachricht ist, odda? ;)