![]() |
Re: Packed Records und Zeichenketten
Zitat:
Gruss Reinhard |
Re: Packed Records und Zeichenketten
Eben, deswegen wird der nie 2GB groß ;) Lies mal meinen Beitrag aber böse Tricks mit dem Speichermanager weiter oben.
|
Re: Packed Records und Zeichenketten
Och, bei der Lösung ist man aber auch wieder eingeschränkt. Warum nicht einfach ein kleines Protokoll definieren? Beispiel:
1. Integer (4 Bytes) Länge der folgenden Zeichenkette 2. Zeichenkette in der Länge wie zuvor angegeben.
Delphi-Quellcode:
bzw. empfangen:
procedure SendString(AText: string);
var lLen: Integer; begin lLen := length(AText); Socket.SendBuf(lLen, sizeof(lLen)); if lLen > 0 then Socket.SendBuffer(AText[1], lLen); end;
Delphi-Quellcode:
function ReceiveString: string;
var lLen: Integer; begin Socket.ReceiveBuf(lLen, sizeof(lLen)); if lLen > 0 then begin SetLength(Result, lLen); Socket.ReceiveBuf(result[1], lLen); end; end; |
Re: Packed Records und Zeichenketten
@Muetze1: Klar. Aber das funktioniert nicht wenn der String in einem Record ist und man das ganze Record verschickt...
|
Re: Packed Records und Zeichenketten
Der Sinn hinter einem solchen Protokoll ist ja auch, eben nicht den gesamten Record zu verschicken, sondern die einzelnen Komponenten.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:34 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