NMUDP发送结构化数据时出问题(50分)

  • 主题发起人 主题发起人 cp0574
  • 开始时间 开始时间
C

cp0574

Unregistered / Unconfirmed
GUEST, unregistred user!
接收方收到的是乱码!我的相关代码如下:

type
Pcom=^Tcom;
Tcom=record
Ctrl:byte;
hostname:string;
IP:string;
。。。
end;

发送方发送数据如下:(var acom:Pcom;)
with ACom do
begin
CTRL:=ASK;
hostname:=selfname;
ip:=selfIP;
。。。
end;
MyStream:=TMemoryStream.Create;
try
MyStream.Write(ACom^,sizeof(ACom^));
CUDP.SendStream(MyStream);
finally
MyStream.Free;
end;

接收方的代码:
MyStream:=TMemoryStream.Create;
CUDP.ReadStream(MyStream);
MyStream.Readbuffer(ACom^,NumberBytes);
with Acom^ do
begin
recctrl:=CTRL;
recname:=hostname;
recIP:=ip;
。。。
end;
这里收到的ACOM全为乱码!望大家告我问题出哪?????
 
靠,没人能告诉我这个问题吗!!!
HELP啊!!!!!!
 
MyStream.Write(ACom^,sizeof(TCom)); ---> Tcom
 
结构体类型不能够为String类型,因为不知道结构体长度。用已之长度的char数组,或者将pchar长度写到信息头到接收的时候在解析。
 
to goeasy: 对,我想想确实如此。但我发觉在发送数据时出现另外个错误,就是对方不在线,端口关闭的情况下,这好像是BUG,有升级的吗???
 
后退
顶部