各位,麻烦会的哥们指导一下。我的qq:574148104 刚接触各方面知识,现在搞不懂怎么将xml数据流通过socket进行封包(有包头的规则)。虚心向学,有相关指导性书籍都可以推荐的。可以的话,帮忙给出一段代码参考下(数据封包方面的)谢谢~!
1概述
数据采集器与数据中心之间采用TCP连接方式进行交互,服务器地址:58.33.55.30,端口为1020。有效数据内容为经过AES(128位)加密后的XML数据。
本文档描述了通讯协议的规则。
2数据封包格式
3、指令说明
3.1身份验证数据包
i.采集器请求身份验证(数据采集器发送)
<?xml version="1.0" encoding="utf-8" ?>
<root>
<common>
<building_id><!-- 楼栋编号 --></building_id>
<gateway_id><!-- 采集器编号 --></gateway_id>
<type>request</type>
</common>
<id_validate operation="request" />
</id_validate>
</root>
ii.数据中心发送一串随机序列(数据中心发送)
<?xml version="1.0" encoding="utf-8" ?>
<root>
<common>
<building_id><!-- 楼栋编号 --></building_id>
<gateway_id><!-- 采集器编号 --></gateway_id>
<type>sequence</type>
</common>
<id_validate operation="sequence">
<sequence ><!-- 随机序列 --></sequence>
</id_validate>
</root>
iii.采集器发送计算的MD5(数据采集器发送)
<?xml version="1.0" encoding="utf-8" ?>
<root>
<common>
<building_id><!-- 楼栋编号 --></building_id>
<gateway_id><!-- 采集器编号 --></gateway_id>
<type>md5</type>
</common>
<id_validate operation="md5">
<md5><!-- 数据中心随机序列MD5值 --></md5>
</id_validate>
</root>
iv.数据中心验证结果(数据中心发送)
<?xml version="1.0" encoding="utf-8" ?>
<root>
<common>
<building_id><!-- 楼栋编号 --></building_id>
<gateway_id><!-- 采集器编号 --></gateway_id>
<type>result</type>
</common>
<id_validate operation="result">
<result><!-- 验证成功:pass;验证失败:fail --></result>
</id_validate>
</root>
对着协议规则,定义结构体,然后socket通信的时候,把结构体转换成byte数组,发送,接收。