1通讯规则
1、 通讯软件作为通讯的服务端,开放端口进行侦听;端口可配置;
2、 前端设备作为通讯的客户端与服务器进行连接。 数据包格式:
类型 说明 备注
Unsigned long 包头 0xaaabbbbb
Unsigned long 数据包长度 包长度之后到包尾之前的所有字段的长度
Unsigned long 命令码 数据包的含义
…… 数据内容
Unsigned long 包尾 0xaaabbbbc命令码有 101、102、103、104 不同的命令码对应不同的数据内容。其中最麻烦的如果命令码是103, 后面的数据内容就是一个结构体+图片序号+图片大小+图片内容 。 我到底该怎么去解析把结构体跟图片都取出来呢???
1、 通讯软件作为通讯的服务端,开放端口进行侦听;端口可配置;
2、 前端设备作为通讯的客户端与服务器进行连接。 数据包格式:
类型 说明 备注
Unsigned long 包头 0xaaabbbbb
Unsigned long 数据包长度 包长度之后到包尾之前的所有字段的长度
Unsigned long 命令码 数据包的含义
…… 数据内容
Unsigned long 包尾 0xaaabbbbc命令码有 101、102、103、104 不同的命令码对应不同的数据内容。其中最麻烦的如果命令码是103, 后面的数据内容就是一个结构体+图片序号+图片大小+图片内容 。 我到底该怎么去解析把结构体跟图片都取出来呢???
解决方案 »
- 当TRichEdit控件的onchange事件触发如何知道控件中的文本变化是什么?
- 高分求助!Delphi中怎樣於Crystal Reports 9關聯!
- delphi怎么下载文件
- 急问如何实现windows造字程序那样的格子
- fastreport怎样才能只显示图表,不显示报表?
- 急,:我如何检查win2000中有没有安装简单邮件传输协义呀?
- delphi中如何读取word表格中的内容?
- 请问这样的XML怎样读取?
- 200分送上,如何才能捕获视频,我用的是CPE200,和天敏卡。
- 有谁用过Delphi中的Datapump?
- delphi 运行程序结束时 提示错误 invalid pointer operation 怎么解决?
- 请教关于dbgrideh 不同值颜色不同的问题
1、移动流的指针
FStream.Seek(0, soFromBeginning);
2、定义一个Longword类型的变量FPacketHead
FStream.ReadBuffer(FPacketHead, SizeOf(FPacketHead); //得到数据包包头
3、定义一个Longword类型的变量FPacketLeng
FStream.ReadBuffer(FPacketLeng, SizeOf(FPacketLeng); //得到数据包长度
4、定义一个Longword类型的变量FPacketCode
FStream.ReadBuffer(FPacketCode, SizeOf(FPacketLeng); //得到命令码
5、根据命令码的不同执行不同的操作
case FPacketCode of
101:
begin
//...
end;
102:
begin
//...
end;
103:
begin
//FRec为结构体,FIdx为图片序号,FSize为图片大小,FImg为图片内容
FStream.ReadBuffer(FRec, SizeOf(FRec));
FStream.ReadBuffer(FIdx, SizeOf(FIdx));
FStream.ReadBuffer(FSize, SizeOf(FSize));
//………
//以此类推
end;
104:
begin
//...
end;
end;