Forum: Netzwerke
Delphi
by AnTiPrimaTe,
1. Mär 2004
Hallo,
sorry für Verzögerung, war viel zu tun heute ...
Du muss das Lesen für den Client in einem Thread realisieren.
Anbei ein kleines Beispiel, es hängt sich zwar beim Beenden auf
(hatte keine Zeit/Lust nach der Ursache zu suchen, wahrscheinlich
kille ich die Threads falsch)
aber Daten werden in beide Richtungen versendet.
Beim Connect bekommt der Client eine Message vom Server, ...
Forum: Netzwerke
Delphi
by AnTiPrimaTe,
29. Feb 2004
Das war das fehlende Glied! Habe ich tatsächlich überlesen.
until not aWSStream.WaitForData(2000)
Was ist wenn Verzögerung > 2000 ist und nicht alle Daten angekommen sind?
Ach klar, der Thread läuft ja solange der Client da ist ...
Aber jedes man eine neue Verbindung aufzumachen
Forum: Netzwerke
Delphi
by AnTiPrimaTe,
29. Feb 2004
Aus dem ganzen sieht man, dass Du noch nie richtig mit Sockets
gearbeitet hast, daher fehlt Dir auch das Verständis für
solche Sachen. Ich schreibe seit Jahren Applikationen,
die mehrere Tausenden von Datenframes innerhalb weniger Sekunden verschicken
und weiß wovon ich rede.
Mit der Zeit wirst Du das schon verstehen.
Forum: Netzwerke
Delphi
by AnTiPrimaTe,
29. Feb 2004
das alles heißt ja nicht, dass die Daten nicht fragmentiert werden,
im Beispiel wird das nur dadurch gelöst, dass Du immer die Daten liest,
solange es geht. Das geht auch, im Thread, und nur wenn du ein
Frame in einer Stunde abschickst.
Start und End-Signaturen sind immer wichtig,
stell dir vor, Du willst zwei Memo-Felder oder was auch immer füllen,
schickt Deine 2 Frames innerhalb 1...
Forum: Netzwerke
Delphi
by AnTiPrimaTe,
28. Feb 2004
Also wenn man große String-Daten verschickt und ganz ganau wissen will
wann und ob die komplett angekommen sind, sollte man am besten
eine Anfang- und End- Signaturen verwenden.
Irgendein Zeichen, das nicht in den vorkommen kann (z.B. HEX 13 und HEX 14 oder so).
Dann speichert man jeden angekommenen Frame in ein Buffer
und überprüft, ob Anfang und Ende im Buffer vorkommen,
wenn das...