AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Ist der Server zu "schnell"?
Thema durchsuchen
Ansicht
Themen-Optionen

Ist der Server zu "schnell"?

Ein Thema von NightroadSora · begonnen am 28. Mär 2011 · letzter Beitrag vom 30. Mär 2011
 
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#17

AW: Ist der Server zu "schnell"?

  Alt 29. Mär 2011, 23:38
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)
Code:
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.

Code:
1 ii
2 iiiidddddddddddddd
3 ddddddddddddddddddddddddddddiiiiddddddddddiiiidddddddddd
Zum Zeitpunkt 1 ist ReceiveLength 2 und somit kleiner als SizeOf( Integer ) - warten
Zum Zeitpunkt 2 ist ReceiveLength 18, jetzt lesen wir vom Buffer den Integer-Wert aus
Der Buffer wird beim Lesen automatisch um die gelesenen Bytes verkleinert.
Jetzt muss man abwarten, bis der Buffer mindestens soviel Bytes enthält, wie der Integer-Wert angekündigt hat und wir können die komplette Nachricht vom Buffer lesen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (30. Mär 2011 um 00:02 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz