求助:Delphi自定义结构体,发送服务器,服务器接收信息

首先自定义一个结构包括UserID(30字节)、IP(4字节)、Mac(20字节)等信息不够的自动填充0,然后用IdUDPClient的sendBuffer发送给服务器,... 首先自定义一个结构包括UserID(30字节)、IP(4字节)、Mac(20字节)等信息不够的自动填充0,
然后用IdUDPClient的sendBuffer发送给服务器,服务器端接收怎么弄啊 ,求帮帮忙
展开
 我来答
0xCEA4
2013-08-21 · TA获得超过310个赞
知道小有建树答主
回答量:444
采纳率:100%
帮助的人:315万
展开全部
如果服务端用TidUDPServer,那应该在它的OnUDPRead事件里处理:
先定义你的数据结构,比如:
type
PDataRec=^TDataRec;
TDataRec=recrod
userID:Array[0..29] of AnsiChar;
IP:Integer;
Mac:Array[0..19] of AnsiChar;
end;
procedure 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等需要做些调整
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式