Hi,
wenn man ein Record per Socket versenden möchte, der Strings enthält, müssen diese ja eine feste Länge haben.
Delphi-Quellcode:
type
TData = record
I: Integer;
R: Real;
S1: string[50]; //OK
S2: ShortString; //OK
S3: string; //geht nicht
end;
SendBuffer(Socket, Data, SizeOf(Data));
Da die zu versendenden Strings unterschiedlich lang sein können, muss immer der worst-case (bsp. ShortStrings, also 255 Zeichen) angenommen werden. Bei kurzen Strings ist die Datenmenge damit viel größer als nötig.
Natürlich könnte ich alle Strings mit einem Trennzeichen zusammenfassen und dann versenden, diese Lösung erscheint mir aber nicht sonderlich sauber und deshalb wollte ich fragen, ob es eine bessere Lösung gibt ein Record mit dynamischen Strings per Socket zu senden?