Спасибо за вариант - до такого пока еще "не дорос", зато есть ориентиры ... )))
Может кому понадобится, вопрос решился стандартными средствами:
uses ... IdGlobal;
TArray_Data = record
fText_a: array[0..19] of Char;
a,b:double;
end;
Клиент:
var data : TArray_Data;
Buffer: TIdBytes;
begin
data.fText_a:='Данные:';
data.a:=2.0;
data.b:=3.0;
Buffer := RawToBytes(data, SizeOf(data));
IdTCPClient1.IOHandler.write (buffer);
end;
Сервер:
var
MIRec: TArray_Data;
Buffer: TIdBytes;
b_size : integer;
begin
AContext.Connection.IOHandler.ReadBytes(Buffer, SizeOf(MIRec));
BytesToRaw(Buffer, MIRec, SizeOf(MIRec));
memo1.Lines.Add(MIRec.fText_a);
memo1.Lines.Add(MIRec.a.ToString);
memo1.Lines.Add(MIRec.b.ToString);
end;
Самое веселое, что ночью этот код не работал, в связи с чем, собственно, и был задан вопрос ...