![]() |
Mein Protokoll für TServerSocket und TClientSocket
hi,
baue eine verbindung mit Server und Clientsocket auf. Befehle werde in diese art versendet COMMAND|Daten|parameter|ende So weit so gut. Alles funktioniert reibungslos. Wenn ich größeren Texte bei Daten versende kommt nur die hälfte an. Denke mal das nur 255 zeichen gesendet werden, oder? Kümmern die Socket sich selbst um die größe? das heist wird dieser Text in zwei oder drei Pakete aufgeteilt? z.b so Paket 1 COMMAND|langer text...... Paket 2 ....text|parameter|ende |
Re: Mein Protokoll für TServerSocket und TClientSocket
Zitat:
Aber: wie sieht deine Empfangsroutine aus ? So etwa sollte das sein:
Delphi-Quellcode:
Damit stellst Du sicher, dass die Aufteilung der Daten beim Senden wieder zusammengeführt wird, und längere Datensätze auch vollständig ankommen.
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket); var s: string; begin while Socket.ReceiveLength > 0 do s := s + Socket.ReceiveString; // jetzt sollte s vollständig sein. end; |
Re: Mein Protokoll für TServerSocket und TClientSocket
hi,
habe meine routine jetzt abgeändert.
Delphi-Quellcode:
funktioniert wunderbar.
while Socket.ReceiveLength > 0 do
s := s + Socket.ReceiveText; ParseText(Socket,s); thx |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:20 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