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

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

【技术实现步骤摘要】
一种跨平台的网络数据的传输方法
本专利技术涉及网络通信技术,特别涉及一种跨平台的网络数据的传输方法。
技术介绍
随着网络技术的发展和智能手机技术的发展,跨平台网络通信技术已越来越多的应用于开发过程中。但是,在不同平台中,使用的编程语言、支持的数据类型种类、数据长度、字节序和字符编码等多不相同,从而导致同样的通信数据流在不同的平台中会被解释为不同的数据,所以各个平台之间无法直接通信。目前,常用的跨平台通信方案有:基于简单对象访问协议(SOAP,SimpleObjectAccessProtocol)消息格式的网络服务器(WebService)和基于JSON(JavaScriptObjectNotation)消息格式的RESTful服务等。然而,由于WebService完全基于XML、XSD(XMLSchema)等标准,通过WebService定义的接口获得WebService的描述语言(WSDL)的描述文件,各平台依据此WSDL描述文件获得WebService的接口信息。该方法还存在以下缺点:1、在网络通信层,采用HTTP协议进行通信,其交互性受HTTP通讯协议中的“请求-响应”机制限制,导致其在通信交互时实时性相对较低。2、在数据协议方面,该方法使用基于XML协议的消息格式,而XML是一种可扩展标记语言,为符合其格式将导致非有效数据过多,导致数据通信相对需要耗费更多流量、占用较大带宽。另外,上述基于JSON消息格式的RESTful服务,则采用JSON(JavaScriptObjectNotation)格式,该方法也存在以下缺点:JSON格式需要在每个传输数据中加入数据名称,从而增大了传输数据量,也占用较大带宽,导致数据传输效率有一定降低。
技术实现思路
有鉴于此,本专利技术提供一种跨平台的网络数据的传输方法,从而可以方便不同平台之间的数据流的序列化、打包、传输和解析,减少跨平台通信的数据传输量,提高传输效率。本专利技术的技术方案具体是这样实现的:一种跨平台的网络数据的传输方法,该方法包括: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进行反序列化,得到通信源端所发送的数据集合。较佳的,所述序列化规则包括:数组数据序列化规则和非数组数据序列化规则。较佳的,所述将需发送的数据集合中的每个数据都序列化为相应的字节流包括:当所述数据为数组数据时,使用预设的数组数据序列化规则将所述数据序列化为相应的字节流;当所述数据为非数组数据时,使用预设的非数组数据序列化规则将所述数据序列化为相应的字节流。较佳的,所述非数组数据序列化规则包括:将非数组数据被序列化的字节流的第1个字节设为数据类型标志字节TA,用于标志该数据的数据类型以及该数据是否为数组数据;将非数组数据被序列化的字节流的第2个字节L0和第3个字节L1组成一个整型数据,表示该非数组数据编码化后的数据所包含的字节的长度n;将所述非数组数据编码化为相应的n个字节,排列在所述字节L1之后;对于布尔类型的非数组数据,在序列化时统一编码化为一个字节,该字节取值为1时表示真,取值为0时表示假。较佳的,所述由L0和L1组成的整型数据的取值范围为0-65535。较佳的,对于非数组数据中的string类型数据,使用utf-8编码化。较佳的,所述数组数据序列化规则包括:将数组数据被序列化的字节流的第1个字节设为数据类型标志字节TA,用于标志该数据的数据类型以及该数据是否为数组数据;将数组数据被序列化的字节流的第2个字节AL0和第3个字节AL1组成一个整型数据,表示该数组数据的数组中所包含的数据的数量;对于所述数组数据的数组中的每一个数据,将该数据编码化为相应的n个字节,并在所述n个字节之前加入由两个字节L0和L1组成的整型数据,形成该数据的序列化字节流;其中,所述整型数据表示所述n个字节流的长度n;将所述数组数据的数组中的每一个数据的序列化字节流按各个数据在数组中的排列顺序依次排列在所述字节AL1之后,形成该数组数据的序列化字节流。较佳的,所述数据类型标志字节TA的前7位组成1个7位2进制数,表示该数据的数据类型;所述数据类型标志字节TA的第8位存放数组标志,表示该数据是否为数组数据。较佳的,所述由AL0和AL1组成的整型数据的取值范围为0-65535。较佳的,所述由L0和L1组成的整型数据的取值范围为0-65535。如上可见,在本专利技术所提供的跨平台的网络数据的传输方法中,通信源端可将一组数据使用自定义的支持数组数据和非数组数据的轻量级编码方式进行编码,并计算CRC16校验后,统一按照网络字节序方式进行打包,然后利用socket网络连接将序列化后的数据发送到通信目的端;通信目的端将接收到的符合网络字节序的字节流初步解析后,进行CRC16校验,如校验失败,要求通信源端重发数据,如校验成功,则按照与通信源端相同的方式将数据解码,得到通信源端发送的数据。由于在上述的跨平台的网络数据的传输方法中,在对数据进行打包时未加入数据名称等过多的非有效数据,因此上述编码方式是一种轻量级编码方式,相比于现有技术中常用的跨平台通信方法具有数据传输效率高的特点。另一方面,由于上述的跨平台的网络数据的传输方法中的编码方法支持非数组数据和数组数据,并具有校验重发机制,因此相对于现有技术中常用的数据传输方法,具有兼容数据类型多,传输可靠性好的特点。附图说明图1为本专利技术实施例中的跨平台的网络数据的传输方法的流程示意图。图2为本专利技术的实施例中的非数组数据序列化规则的示意图。图3为本专利技术的实施例中的数据类型标志字节TA的结构示意图。图4为本专利技术的实施例中的数组数据序列化规则的示意图。图5为本专利技术的实施例中的字节流S4的结构示意图。图6为本专利技术的具体实施例一中的个人信息数据表序列化后的字节流数据示意图。具体实施方式为使本专利技术的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本专利技术进一步详细说明。在不同的平台中,虽然所使用的编程语言、支持的数据类型种类、数据长度、字节序和字符编码等多不相同,导致同样的通信数据流在不同的平台中会被解释为不同的数据本文档来自技高网
...
一种跨平台的网络数据的传输方法

【技术保护点】
一种跨平台的网络数据的传输方法,其特征在于,该方法包括: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进行反序列化,得到通信源端所发送的数据集合。...

【技术特征摘要】
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个字节设为数...

【专利技术属性】
技术研发人员:曹洪太邱竹泉李秀超
申请(专利权)人:中国电信集团系统集成有限责任公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1