求助:Delphi自定义结构体,发送服务器,服务器接收信息
发布网友
发布时间:2022-05-01 22:32
我来回答
共1个回答
热心网友
时间:2022-06-24 09:58
如果服务端用TidUDPServer,那应该在它的OnUDPRead事件里处理:
先定义你的数据结构,比如:
type
PDataRec=^TDataRec;
TDataRec=recrod
userID:Array[0..29] of AnsiChar;
IP:Integer;
Mac:Array[0..19] of AnsiChar;
end;
procere TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var buf:PByte;//缓冲区指针
begin
GetMem(buf,AData.Size);//分配内存
AData.Read(buf^,AData.Size);//把收到的数据读取缓冲区
//数据读到缓冲后,如果里面存的是TDataRec结构的数据就可以通过TDataRec的指针如下访问它的数据域
PDataRec(buf)^.userID...//访问结构中的userID
PDataRec(buf)^.IP..//访问其中的IP域
//...
FreeMem(buf);//释放分配的内存
end;
注意:上面的代码是基于Delphi7,indy9的,如果是新版的delphi和indy10等需要做些调整