比如我的数据包格式:
头部:
unsigned short opttype 操作类型
unsigned short headsize 数据包头部长度
unsigned short packsize 数据包长度
数据
BYTE data 数据
怎样用XML来封装呀?
从没用过XML,请详细点好吗?
谢谢!
头部:
unsigned short opttype 操作类型
unsigned short headsize 数据包头部长度
unsigned short packsize 数据包长度
数据
BYTE data 数据
怎样用XML来封装呀?
从没用过XML,请详细点好吗?
谢谢!
unsigned short packsize 数据包长度
=====>按照xml标准做,你不需要加这些东西,它们可以省略,这也是xml统一标准的好处;标准xml解析器能区别数据元另外:xml封装的是字符串,其中不可以有ascii 0这样的字符,而且其不适应包装大量二进制数据你的数据可以这样包装:
<head>
<cmd>10001</cmd> //====> unsigned short opttype
<data>3401234n1234onc21349q234flksdfafa9erqwerqwerqwerqer</data> //==>BYTE data 数据
</head>再从网上download一个xml解析器,做为你程序的模块即可
那我接收时怎样处理粘包的问题?
这次换了个系统设计师,非叫用XML不可,不知道处于什么想法?XML有很多优势吗?
这次换了个系统设计师,非叫用XML不可,不知道处于什么想法?XML有很多优势吗?
-------------------------------------------------------------------------
1.就效率来说,肯定是结构体来得高,XML肯定是比较慢的。
2.两者都可以设计出可扩展的协议来。
3.相比之下,使用XML设计出的可扩展协议更加方便,但是在传输二进制数据时,
可以会有限限制,不过这也跟XML Parser的不一样而不一样的。不过到目前为止,
本人还没看到可以很好的进行二进制数据传输的Parser,但是,他可以通过编成
其他的编码方式来进行传输,但是这样将会进一步损失效率。而使用结构体就没
有这方面的问题,但是设计出可扩展协议,将对开发人员要求比较高,在使用时
也要多些注意。
一个依赖于MS的<afxtempl.h>叫Markup
另一个是stl的只需<string>叫MarkupSTL,个人更喜欢用这个,在你的模型中用MarkupSTL.h/cpp即可,它有demo