我用C# 写的代码,用Socket连接远程的服务器,对方给我如下报文结构,请问我该如何用结构体封装起来。

名称数据类型长度说明起始字头HEX2用“ABHA5H”表示数据长度HEX2从命令字到结束标识包括命令字和结束标识命令字HEX2见表2数据体String不定长度数据内容长度... 名称 数据类型 长度 说明
起始字头 HEX 2 用“ABH A5H”表示
数据长度 HEX 2 从命令字到结束标识包括命令字和结束标识
命令字 HEX 2 见表2
数据体 String 不定长度 数据内容长度可变
结束标识 HEX 1 用“DCH“表示
我主要是不知道。这个HEX类型在C#里是什么类型。
展开
 我来答
黄何百
2014-03-27 · 超过23用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:59.5万
展开全部
HEX应该是十六进制数据,一位一位的解析吧,再保存成字符串的形式
追问
如何一位一位解析?可以给代码示例吗?
我是这样做的,可以读出来,但是读出来的数字不是我想要的。
UInt16 test = BitConverter.ToUInt16(byteBody,0);
kcxnvbdbd
2014-03-27 · TA获得超过523个赞
知道小有建树答主
回答量:885
采纳率:50%
帮助的人:620万
展开全部
长度1位的,用byte类型,2位的用ushort类型
数据体长度可以使用 数据长度-7来获得,然后申明定长数组保存

最好贴一个原始报文给看看, 不知道你收到的原始信息是什么
追问
我是这样写的:
byte[]byteBody = new byte[2];
Array.Copy(recvBytes, 0, byteBody, 0, 2);
ushort test= BitConverter.ToUInt16(byteBody,0);
结果:42441,应是ABH A5H
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
livershi
2014-03-27 · TA获得超过165个赞
知道小有建树答主
回答量:208
采纳率:0%
帮助的人:211万
展开全部
hex为十六进制
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式