关于处理流数据,急(188分)

  • 主题发起人 主题发起人 夜黑风高
  • 开始时间 开始时间

夜黑风高

Unregistered / Unconfirmed
GUEST, unregistred user!
请问一下,我将一个结构体(record)变量的数据转成Tmemorystream方式通过socket发送到服务端,服务端接收了流(Twinsocketstream)以后怎么还原为结构体数据?谢谢!188分献上。
 
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
txx = record
s :string;
a :string;
end;
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
s :Tmemorystream;
aa :txx;
bb :txx;
begin
aa.a :='aaaaaaaa';
aa.s :='ssssssss';
s :=Tmemorystream.Create;
s.WriteBuffer(aa,sizeof(aa));
//这里以下可以在另一个机器理处理
s.Position :=0;
s.ReadBuffer(bb,sizeof(bb));
showmessage(bb.a+#13+bb.s);
s.Free;
end;

end.
 
我明白了,只要结构体里的数据类型都是固定长度的话不用流,直接用socket传输就行了。
谢谢仙剑
 

Similar threads

后退
顶部