[发明专利]一种基于TCP/IP的二进制数据交互协议设计方法在审
申请号: | 202110372790.6 | 申请日: | 2021-04-07 |
公开(公告)号: | CN113114655A | 公开(公告)日: | 2021-07-13 |
发明(设计)人: | 汪云;刘毅;林涛睿;汤园生;陈阳;邱真;柴涛涛;王涛 | 申请(专利权)人: | 深圳市瑞驰信息技术有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 深圳市中科创为专利代理有限公司 44384 | 代理人: | 彭西洋;谭雪婷 |
地址: | 518000 广东省深圳市前海深港合作区前*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 tcp ip 二进制 数据 交互 协议 设计 方法 | ||
1.一种基于TCP/IP的二进制数据交互协议设计方法,其特征在于,包括如下步骤:
S1,数据包定义,定义每次传输的整个数据包为一个Box;
S2,数据包描述,使用伪代码描述一个Box;
S3,数据打包;
S4,数据发送;
S5,数据接收;
S6,数据解析。
2.根据权利要求1所述的基于TCP/IP的二进制数据交互协议设计方法,其特征在于S1还包括:
S11,定义Box为一个包含了大小Size、类型Type、数据Data的数据块,其中Data部分可包含字段Fields和其他Box,Size和type部分称为Box的头部Header;
S12,定义Box中数据使用大端字节序格式进行存储。
3.根据权利要求1所述的基于TCP/IP的二进制数据交互协议设计方法,其特征在于S2还包括:定义所有的Box数据在内存中都按照8bit对齐。
4.根据权利要求3所述的基于TCP/IP的二进制数据交互协议设计方法,其特征在于S2还包括:在Box中加入version和flags字段,其中version用8bit描述box的版本,flag用24bit作为一系列的bit flag,用于扩展。
5.根据权利要求1所述的基于TCP/IP的二进制数据交互协议设计方法,其特征在于S3还包括:
S31,数据打包前,准备一个内存缓冲区Buffer,该缓冲区大小能容纳整个Box数据;
S32,使用一个指针或索引pFreeData指向缓冲区空闲位置,从Buffer头部开始,当Buffer中写入数据后,将pFreeData往后移动,保证pFreeData处于Box的尾部;
S33,使用指针或索引pBoxSize记录Box的Size字段在缓冲区的位置;
S34,写入Box Type并更新pFreeData;
S35,按照Box的协议描述写入Version和flag规定的字段并更新pFreeData;
S36,数据全部写入完毕后,根据pFreeData位置计算出Box大小,写入到pBoxSize处。
6.根据权利要求5所述的基于TCP/IP的二进制数据交互协议设计方法,其特征在于S35还包括:判断是否有Version和flag规定的字段。
7.根据权利要求1所述的基于TCP/IP的二进制数据交互协议设计方法,其特征在于S5还包括:
S51,客户端或服务器在接收数据包时,先接收4个字节的Box大小,再按大端字节序解析这4个字节的内容得到Box大小N;
S52,再接收N-4个字节数据,这样将一整个Box的数据接收完毕;
S53,将一个Box的数据存放在一段连续内存中。
8.根据权利要求1所述的基于TCP/IP的二进制数据交互协议设计方法,其特征在于S6还包括:
S61,解析Box Size和Box Type;
S62,根据协议描述文档找到对应类型的Box描述,逐字节解析Box内容,直到整个Box解析完毕。
9.根据权利要求8所述的基于TCP/IP的二进制数据交互协议设计方法,其特征在于S62还包括:判断Box中是否含有Version和Flag字段,当含有Version和Flag字段,根据当前Box的Version信息解析对应版本的数据,如果Version未知则跳过整个Box的数据解析。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市瑞驰信息技术有限公司,未经深圳市瑞驰信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110372790.6/1.html,转载请声明来源钻瓜专利网。