MyRecord = Record 
    msgHeader :String;
    msgText :String;
   ....
end;
现在需要将此Record转化成流通过Socket传输,然后另一端通过socket接受
然后转化未Record.
请教高手该如何实现?

解决方案 »

  1.   

    var
      rec: MyRecord;
      ms: TMemoryStream;
    begin
      ms := TMemoryStream.Create;
      ms.Write(rec, SizeOf(rec));
      ms.Free;
    end;
      

  2.   

    我也用的是这种方法,但是接受后不正确。
    我查了一下:因为String型变量在Record中写入的是指针。
    所以接受后不能正确解析。
      

  3.   

    那就不用string,用字符数组吧,这样记录可以固定长度。
      

  4.   

    如果msgText 的长度最长是64K
    如果要发1个字节的内容,每次也要传64K吗?