一种跨平台的网络数据的传输方法

文档序号:7822600阅读:391来源:国知局
一种跨平台的网络数据的传输方法
【专利摘要】本发明公开了一种跨平台的网络数据的传输方法。该方法包括:通信源端选择对应的序列化规则,将需发送的数据集合中的每个数据都序列化为相应的字节流,将各个数据序列化后的字节流排列成S1;在S1之前加入长度标志和数据集合类型标志,形成S3;对S3进行CRC16校验,将校验数据加入到S3之后,形成S4;通信源端将S4发送到通信目的端;通信目的端对S4进行解析,得到S1、数据集合类型标志和校验数据;对S1进行CRC16校验,如果校验不通过,请求通信源端重新发送数据;如果校验通过,则对S1进行反序列化,得到通信源端所发送的数据集合。通过使用上述方法,可以方便不同平台之间的数据流的序列化、打包、传输和解析,减少跨平台通信的数据传输量,提高传输效率。
【专利说明】-种跨平台的网络数据的传输方法

【技术领域】
[0001] 本发明设及网络通信技术,特别设及一种跨平台的网络数据的传输方法。

【背景技术】
[0002] 随着网络技术的发展和智能手机技术的发展,跨平台网络通信技术已越来越多的 应用于开发过程中。但是,在不同平台中,使用的编程语言、支持的数据类型种类、数据长 度、字节序和字符编码等多不相同,从而导致同样的通信数据流在不同的平台中会被解释 为不同的数据,所W各个平台之间无法直接通信。
[0003] 目前,常用的跨平台通信方案有:基于简单对象访问协议(SOAP, Simple化ject Access Protocol)消息格式的网络服务器(Web Service)和基于 JSONQavaScript Object Notation)消息格式的RESTful服务等。
[0004] 然而,由于Web Service完全基于XML、XSD (XML Schema)等标准,通过Web Service定义的接口获得Web Service的描述语言(WSDL)的描述文件,各平台依据此WS化 描述文件获得Web Service的接口信息。该方法还存在W下缺点:
[0005] 1、在网络通信层,采用HTTP协议进行通信,其交互性受HTTP通讯协议中的"请 求-响应"机制限制,导致其在通信交互时实时性相对较低。
[0006] 2、在数据协议方面,该方法使用基于XML协议的消息格式,而XML是一种可扩展标 记语言,为符合其格式将导致非有效数据过多,导致数据通信相对需要耗费更多流量、占用 较大带宽。
[0007] 另外,上述基于JS0N消息格式的RESTful服务,贝Ij采用JSONQavaScript Object Notation)格式,该方法也存在W下缺点JSON格式需要在每个传输数据中加入数据名称, 从而增大了传输数据量,也占用较大带宽,导致数据传输效率有一定降低。


【发明内容】

[000引有鉴于此,本发明提供一种跨平台的网络数据的传输方法,从而可W方便不同平 台之间的数据流的序列化、打包、传输和解析,减少跨平台通信的数据传输量,提高传输效 率。
[0009] 本发明的技术方案具体是该样实现的:
[0010] 一种跨平台的网络数据的传输方法,该方法包括:
[0011] A、通信源端根据数据类型选择对应的序列化规则,将需发送的数据集合中的每个 数据都序列化为相应的字节流;
[0012] B、通信源端按照所述数据集合中各数据的排列顺序,将各个数据序列化后的字节 流排列成第一字节流S1 ;
[0013] C、通信源端在所述第一字节流S1之前加入4个字节的用于表示第一字节流S1的 长度的长度标志,形成第二字节流S2 ;
[0014] D、通信源端在所述第二字节流S2之前加入2个字节的用于表示所传输的数据的 数据集合类型的数据集合类型标志,形成第=字节流S3 ;
[0015] E、通信源端对所述第S字节流S3进行CRC16校验,得到两个字节的校验数据;在 所述第=字节流S3之后加入所述校验数据,形成第四字节流S4 ;
[0016] F、通信源端与通信目的端建立网络连接,将第四字节流S4发送到通信目的端;
[0017] G、通信目的端对所接收到的第四字节流S4进行解析,得到与所述第四字节流S4 对应的第一字节流S1、数据集合类型标志和校验数据;
[0018] H、通信目的端对所得到的第一字节流S1进行CRC16校验,如果校验不通过,则请 求通信源端重新发送数据;如果校验通过,则执行步骤I ;
[0019] I、通信目的端根据所得到的数据集合类型标志确定所得到的第一字节流S1的数 据集合类型,根据数据集合类型选择对应的序列化规则,对第一字节流S1进行反序列化, 得到通信源端所发送的数据集合。
[0020] 较佳的,所述序列化规则包括;数组数据序列化规则和非数组数据序列化规则。
[0021] 较佳的,所述将需发送的数据集合中的每个数据都序列化为相应的字节流包括:
[0022] 当所述数据为数组数据时,使用预设的数组数据序列化规则将所述数据序列化为 相应的字节流;
[0023] 当所述数据为非数组数据时,使用预设的非数组数据序列化规则将所述数据序列 化为相应的字节流。
[0024] 较佳的,所述非数组数据序列化规则包括:
[0025] 将非数组数据被序列化的字节流的第1个字节设为数据类型标志字节TA,用于标 志该数据的数据类型W及该数据是否为数组数据;
[0026] 将非数组数据被序列化的字节流的第2个字节L0和第3个字节L1组成一个整型 数据,表示该非数组数据编码化后的数据所包含的字节的长度n ;
[0027] 将所述非数组数据编码化为相应的n个字节,排列在所述字节L1之后;
[002引对于布尔类型的非数组数据,在序列化时统一编码化为一个字节,该字节取值为1 时表示真,取值为0时表示假。
[0029] 较佳的,所述由L0和L1组成的整型数据的取值范围为0-65535。
[0030] 较佳的,对于非数组数据中的string类型数据,使用utf-8编码化。
[0031] 较佳的,所述数组数据序列化规则包括:
[0032] 将数组数据被序列化的字节流的第1个字节设为数据类型标志字节TA,用于标志 该数据的数据类型W及该数据是否为数组数据;
[0033] 将数组数据被序列化的字节流的第2个字节AL0和第3个字节AL1组成一个整型 数据,表示该数组数据的数组中所包含的数据的数量;
[0034] 对于所述数组数据的数组中的每一个数据,将该数据编码化为相应的n个字节, 并在所述n个字节之前加入由两个字节L0和L1组成的整型数据,形成该数据的序列化字 节流;其中,所述整型数据表示所述n个字节流的长度n ;
[0035] 将所述数组数据的数组中的每一个数据的序列化字节流按各个数据在数组中的 排列顺序依次排列在所述字节AL1之后,形成该数组数据的序列化字节流。
[0036] 较佳的,所述数据类型标志字节TA的前7位组成1个7位2进制数,表示该数据 的数据类型;
[0037] 所述数据类型标志字节TA的第8位存放数组标志,表示该数据是否为数组数据。 [003引较佳的,所述由AL0和AL1组成的整型数据的取值范围为0-65535。
[0039] 较佳的,所述由L0和L1组成的整型数据的取值范围为0-65535。
[0040] 如上可见,在本发明所提供的跨平台的网络数据的传输方法中,通信源端可将 一组数据使用自定义的支持数组数据和非数组数据的轻量级编码方式进行编码,并计算 CRC16校验后,统一按照网络字节序方式进行打包,然后利用socket网络连接将序列化后 的数据发送到通信目的端;通信目的端将接收到的符合网络字节序的字节流初步解析后, 进行CRC16校验,如校验失败,要求通信源端重发数据,如校验成功,则按照与通信源端相 同的方式将数据解码,得到通信源端发送的数据。由于在上述的跨平台的网络数据的传输 方法中,在对数据进行打包时未加入数据名称等过多的非有效数据,因此上述编码方式是 一种轻量级编码方式,相比于现有技术中常用的跨平台通信方法具有数据传输效率高的特 点。另一方面,由于上述的跨平台的网络数据的传输方法中的编码方法支持非数组数据和 数组数据,并具有校验重发机制,因此相对于现有技术中常用的数据传输方法,具有兼容数 据类型多,传输可靠性好的特点。

【专利附图】

【附图说明】
[0041] 图1为本发明实施例中的跨平台的网络数据的传输方法的流程示意图。
[0042] 图2为本发明的实施例中的非数组数据序列化规则的示意图。
[0043] 图3为本发明的实施例中的数据类型标志字节TA的结构示意图。
[0044] 图4为本发明的实施例中的数组数据序列化规则的示意图。
[0045] 图5为本发明的实施例中的字节流S4的结构示意图。
[0046] 图6为本发明的具体实施例一中的个人信息数据表序列化后的字节流数据示意 图。

【具体实施方式】
[0047] 为使本发明的目的、技术方案及优点更加清楚明白,W下参照附图并举实施例,对 本发明进一步详细说明。
[0048] 在不同的平台中,虽然所使用的编程语言、支持的数据类型种类、数据长度、字节 序和字符编码等多不相同,导致同样的通信数据流在不同的平台中会被解释为不同的数 据,无法直接通信,但是,只要在通信过程中对传输的数据进行数据长度、字节序和字符编 码按照一定的规则进行处理,即可实现不同平台和不同编程语言开发的程序通信,使通信 目的端正确识别通信源端发送的数据。
[0049] 在本发明的技术方案中,在两个终端进行的网络数据通信准备阶段和通信过程 中,可W将向另一方传输数据的一方称为通信源端,并将接受另一方传输数据的一方称为 通信目的端。
[0050] 在本发明的技术方案中,提供了一种跨平台的网络数据的传输方法。
[0化1] 图1为本发明实施例中的跨平台的网络数据的传输方法的流程示意图。如图1所 示,本发明实施例中的跨平台的网络数据的传输方法主要包括如下所述的步骤:
[0化2] 步骤11,通信源端根据数据类型选择对应的序列化规则,将需发送的数据集合中 的每个数据都序列化为相应的字节流。
[0053] 在本发明的技术方案中,为了确保通信目的端可正确反序列化通信源端发送到的 已序列化的字节流数据,通信源端和通信目的端可W使用相同的序列化规则对数据进行编 码和解码(分析)。
[0化4] 较佳的,在本发明的具体实施例中,所述序列化规则包括:数组数据序列化规则和 非数组数据序列化规则。
[005引其中,图2为本发明的实施例中的非数组数据序列化规则的示意图,如图2所示, 在本发明的一个较佳实施例中,所述非数组数据序列化规则可W包括如下所述的步骤: [0化6] 步骤A1,将非数组数据被序列化的字节流的第1个字节设为数据类型标志字节 TA,用于标志该数据的数据类型W及该数据是否为数组数据。
[0化7] 图3为本发明的实施例中的数据类型标志字节TA的结构示意图。如图3所示,较 佳的,在本发明的具体实施例中,所述数据类型标志字节TA的第8位TA7存放的是数组标 志,表示该数据是否为数组数据。例如,TA7的值为0时表示该数据为非数组数据,值为1时 表示该数据为数组数据。所述数据类型标志字节的第8位TA7的取值与数据类型的对应关 系可参见下述的表1 ;
[005引

【权利要求】
1. 一种跨平台的网络数据的传输方法,其特征在于,该方法包括: A、 通信源端根据数据类型选择对应的序列化规则,将需发送的数据集合中的每个数据 都序列化为相应的字节流; B、 通信源端按照所述数据集合中各数据的排列顺序,将各个数据序列化后的字节流排 列成第一字节流S1 ; C、 通信源端在所述第一字节流S1之前加入4个字节的用于表示第一字节流S1的长度 的长度标志,形成第二字节流S2 ; D、 通信源端在所述第二字节流S2之前加入2个字节的用于表示所传输的数据的数据 集合类型的数据集合类型标志,形成第三字节流S3 ; E、 通信源端对所述第三字节流S3进行CRC16校验,得到两个字节的校验数据;在所述 第三字节流S3之后加入所述校验数据,形成第四字节流S4 ; F、 通信源端与通信目的端建立网络连接,将第四字节流S4发送到通信目的端; G、 通信目的端对所接收到的第四字节流S4进行解析,得到与所述第四字节流S4对应 的第一字节流S1、数据集合类型标志和校验数据; H、 通信目的端对所得到的第一字节流S1进行CRC16校验,如果校验不通过,则请求通 信源端重新发送数据;如果校验通过,则执行步骤I ; I、 通信目的端根据所得到的数据集合类型标志确定所得到的第一字节流S1的数据集 合类型,根据数据集合类型选择对应的序列化规则,对第一字节流S1进行反序列化,得到 通信源端所发送的数据集合。
2. 根据权利要求1所述的方法,其特征在于, 所述序列化规则包括:数组数据序列化规则和非数组数据序列化规则。
3. 根据权利要求2所述的方法,其特征在于,所述将需发送的数据集合中的每个数据 都序列化为相应的字节流包括: 当所述数据为数组数据时,使用预设的数组数据序列化规则将所述数据序列化为相应 的字节流; 当所述数据为非数组数据时,使用预设的非数组数据序列化规则将所述数据序列化为 相应的字节流。
4. 根据权利要求3所述的方法,其特征在于,所述非数组数据序列化规则包括: 将非数组数据被序列化的字节流的第1个字节设为数据类型标志字节TA,用于标志该 数据的数据类型以及该数据是否为数组数据; 将非数组数据被序列化的字节流的第2个字节L0和第3个字节L1组成一个整型数据, 表示该非数组数据编码化后的数据所包含的字节的长度n ; 将所述非数组数据编码化为相应的n个字节,排列在所述字节L1之后; 对于布尔类型的非数组数据,在序列化时统一编码化为一个字节,该字节取值为1时 表示真,取值为〇时表示假。
5. 根据权利要求4所述的方法,其特征在于: 所述由L0和L1组成的整型数据的取值范围为0-65535。
6. 根据权利要求4所述的方法,其特征在于: 对于非数组数据中的string类型数据,使用utf-8编码化。
7. 根据权利要求3所述的方法,其特征在于,所述数组数据序列化规则包括: 将数组数据被序列化的字节流的第1个字节设为数据类型标志字节TA,用于标志该数 据的数据类型以及该数据是否为数组数据; 将数组数据被序列化的字节流的第2个字节ALO和第3个字节AL1组成一个整型数据, 表示该数组数据的数组中所包含的数据的数量; 对于所述数组数据的数组中的每一个数据,将该数据编码化为相应的n个字节,并在 所述n个字节之前加入由两个字节L0和L1组成的整型数据,形成该数据的序列化字节流; 其中,所述整型数据表示所述n个字节流的长度n ; 将所述数组数据的数组中的每一个数据的序列化字节流按各个数据在数组中的排列 顺序依次排列在所述字节AL1之后,形成该数组数据的序列化字节流。
8. 根据权利要求4或7所述的方法,其特征在于: 所述数据类型标志字节TA的前7位组成1个7位2进制数,表示该数据的数据类型; 所述数据类型标志字节TA的第8位存放数组标志,表示该数据是否为数组数据。
9. 根据权利要求7所述的方法,其特征在于: 所述由ALO和AL1组成的整型数据的取值范围为0-65535。
10. 根据权利要求7所述的方法,其特征在于: 所述由L0和L1组成的整型数据的取值范围为0-65535。
【文档编号】H04L29/08GK104486396SQ201410758792
【公开日】2015年4月1日 申请日期:2014年12月10日 优先权日:2014年12月10日
【发明者】曹洪太, 邱竹泉, 李秀超 申请人:中国电信集团系统集成有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1