数据处理方法及数据处理装置制造方法及图纸

技术编号:10733439 阅读:119 留言:0更新日期:2014-12-10 10:34
一种数据处理方法及装置,该方法包括步骤:获取待处理数据包;读取所述待处理数据包中的数据;根据所述数据的数据类型,采用预设数据转换方式对所述数据进行转换,获得转换后数据;采用预设字节编码方式对所述转换后数据进行编码,得到编码后数据,并将该编码后数据序列化存储。本发明专利技术实施例的方案,其在对数据进行处理时,是基于数据类型的不同,进行相应的转换后采用预设字节编码方式进行编码,并对编码后数据进行序列化存储,其按照紧密结构来序列化,从而减少了保存相同数据时所占用的存储空间。

【技术实现步骤摘要】
数据处理方法及数据处理装置
本专利技术涉及数据处理领域,特别涉及一种数据处理方法及数据处理装置。
技术介绍
目前在涉及不同设备之间的信息交互时,例如客户端与服务器之间的交互,需要对待传输的数据按照规定的协议进行编码后进行传输,目前关于协议报文的编码定义主要有XML(可扩展标记语言,ExtensibleMarkupLanguage)、JSON(JavaScriptObjectNotation)、ProtocolBuffers(、一种数据描述语言)和数据结构体(使用C&C++语言中结构体定义的数据块,用struct定义)等几种。在使用XML进行数据交互时,比较方便调试,但是服务器和客户端都需要花费很多代码去解析XML,从而在代码量提升的同时,不论是服务器还是客户端,维护都会变得比较困难。Json数据格式与XML相比,易于读写,并且有公开各种语言的解析库用于读取,但是在交互频繁的场景,例如游戏过程中,Json使用文本来传输比较容易被破解并且协议包也不是最优。Protobuf使用键值对的方式来保存数据,在多次重复出现同一数据的时候,用于表示类型和长度的键值可能会比本身要传递的数据都要大,极大的占用存储量。Struct使用的是最基本的结构体来传输,客户端与服务器使用相同的结构体,把传递的数据流转换为结构体来使用,这样看来最简单直接,但是遇到变长数据的时候必须要考虑最大的长度,也就是说每次都必须采用最大长度来发送协议,不仅占用较多的存储量,数据传输时也会占用较多的带宽。
技术实现思路
基于此,本专利技术的目的在于提供一种数据处理方法及一种数据处理装置,其可以减少存储时占用的存储空间,在进行传输时也可以减少对带宽的占用。为达到上述目的,本专利技术实施例采用以下技术方案:一种数据处理方法,包括步骤:获取待处理数据包;读取所述待处理数据包中的数据;根据所述数据的数据类型,采用预设数据转换方式对所述数据进行转换,获得转换后数据;采用预设字节编码方式对所述转换后数据进行编码,得到编码后数据,并将该编码后数据序列化存储。一种数据处理装置,包括:数据包获取模块,用于获取待处理数据包;数据读取模块,用于读取所述待处理数据包中的数据;数据类型确定模块,用于确定所述数据读取模块所读取数据的数据类型;转换模块,用于根据所述数据类型,采用预设数据转换方式对所述数据进行转换,获得转换后数据;编码模块,用于采用预设字节编码方式对所述转换模块得到的转换后数据进行编码,得到编码后数据;存储控制模块,用于将所述编码后数据序列化存储。根据上述本专利技术实施例的方案,其在对数据进行处理时,是基于数据类型的不同,进行相应的转换后采用预设字节编码方式进行编码,并对编码后数据进行序列化存储,其按照紧密结构来序列化,从而减少了保存相同数据时所占用的存储空间,在进行传输是也可以减少对带宽的占用。附图说明图1是一个实施例中的本专利技术方案的工作环境示意图;图2是一个实施例中终端的组成结构示意图;图3是一个实施例中的数据处理方法的流程示意图;图4是一个具体示例中的数据处理方法的流程示意图;图5是一个实施例中包含子数据包时的数据处理方法的流程示意图;图6是一个具体示例中确定待处理数据的长度的流程示意图;图7是一个实施例中的逆向解析数据的流程示意图;图8是一个实施例中的数据处理装置的结构示意图。具体实施方式为使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本专利技术,并不限定本专利技术的保护范围。本专利技术方案提供的数据处理方法和数据处理装置,可以应用于任何一个终端设备,以实现对数据的存储,同时也可以用于不同设备之间的信息交互,例如网络游戏。以应用于用户终端与服务器之间的交互为例,图1示出了一个实施例中的工作环境示意图。该工作环境所在系统包括用户终端和服务器,用户终端、服务器通过网络连接,用户终端与服务器之间交互的数据通过网络进行传输,这里的网络可以是无线网络,也可以是有线网络。结合图1所示,本专利技术实施例的方案涉及用户终端和服务器对需要存储、以及需要发送给对方的数据的处理。用户终端在一个实施例中的结构示意图如图2所示。该用户终端包括通过系统总线连接的处理器、供电模块、存储介质、内存、通信接口、显示屏幕和输入设备。其中,用户终端的存储介质存储有操作系统和一种数据处理装置,该数据处理装置用于实现一种数据处理方法。用户终端的通信接口用于与服务器连接通信。用户终端的输入设备用以接收用户的输入信息。输入设备基于用户终端的类型的不同可以有所不同。用户终端可以是移动终端,比如手机、平板电脑等;也可以是其它具有上述结构的设备,比如个人计算机。以下结合其中的几个实施例,对专利技术的数据处理方法及数据处理装置进行举例说明。图3中示出了一个实施例中的数据处理方法的流程示意图。如图3所示,该实施例中的数据处理方法包括如下步骤:步骤S301:获取待处理数据包;步骤S302:读取所述待处理数据包中的数据;步骤S303:根据所述数据的数据类型,采用预设数据转换方式对所述数据进行转换,获得转换后数据;步骤S304:采用预设字节编码方式对所述转换后数据进行编码,得到编码后数据,并将该编码后数据序列化存储。根据本实施例的方案,其在对数据进行处理时,是基于数据类型的不同,进行相应的转换后采用预设字节编码方式进行编码,并对编码后数据进行序列化存储,其按照紧密结构来序列化,从而减少了保存相同数据时所占用的存储空间,该数据传输时也可以减少对带宽的占用。对于通用的32位机器来说,以整型数据为例,整型数据要使用4个字节来表示,每个字节的8位都用来表示数据。为了便于压缩,在本专利技术实施例的方案中,上述预设字节编码方式,可以是使用每个字节的7位来表示数据,第8位作为标识存在,用来标识数据是否结束。为了实现数据的尽可能压缩,本专利技术实施例中,采用变长度的数据压缩方式,因此,上述预设数据转换方式,基于数据的数据类型的不同,可以设定不同的转换方式。在上述数据的数据类型为布尔型数据时,由于其自身占用的空间就比较小,只需要一个字节就可以保存,它已经是最优的了,因此,无需进行转换,直接进行序列化存储即可。类似地,在上述数据的数据类型为字符型数据时,例如有符号字符数据、无符号字符数据,其自身占用的空间也比较小,只需要一个字节就可以保存,它已经是最优的了,因此,也无需进行转换,直接进行序列化存储即可。在上述数据的数据类型为整型数据时,如上所述,在本专利技术实施例的方案中,是使用每个字节的7位来表示数据,第8位用来标识数据是否结束。基于通用的数据存储方式,如果是一个负的整型数,在计算机内一般会表示为一个很大的整数,因为最高位为符号位,也就是说负数的时候第4个字节的第8位是1。为了更好的利用常用的数据区域,在本专利技术实施例的方案中,需要采用预设数据转换方式对整型数据进行转换,这种预设数据转换方式,本质上是对正数和负数都重新进行了定义,具体为:对正的整型数据,将该数据乘以2,得到转换后数据;对负的整型数据,将该数据的绝对值乘以2后减1,得到转换后数据。基于这种转换,原来的正整型数和负整型数都用正数来表示,其中,正整型数转换后得到的转换后数据为偶数,负整型数转换后得到的数据为奇本文档来自技高网...
数据处理方法及数据处理装置

【技术保护点】
一种数据处理方法,其特征在于,包括步骤:获取待处理数据包;读取所述待处理数据包中的数据;根据所述数据的数据类型,采用预设数据转换方式对所述数据进行转换,获得转换后数据;采用预设字节编码方式对所述转换后数据进行编码,得到编码后数据,并将该编码后数据序列化存储。

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括步骤:获取待处理数据包;读取所述待处理数据包中的数据;根据所述数据的数据类型,采用预设数据转换方式对所述数据进行转换,获得转换后数据;采用预设字节编码方式对所述转换后数据进行编码,得到编码后数据,并将该编码后数据序列化存储,所述预设字节编码方式包括:每个字节的7位表示数据、每个字节的第8位为数据是否结束的标识位。2.根据权利要求1所述的数据处理方法,其特征在于,在获取待处理数据包后、读取所述待处理数据包中的数据之前,还包括步骤:分析所述待处理数据包是否包含子数据包;若是,获取所述子数据包的数目;根据所述预设数据转换方式对所述子数据包的数目进行转换,获得转换后数据;采用预设字节编码方式对所述转换后数据进行编码,得到编码后数据,并将该编码后数据序列化存储。3.根据权利要求1所述的数据处理方法,其特征在于,在获取待处理数据包后、读取所述待处理数据包中的数据之前,还包括步骤:确定所述待处理数据包的压缩后长度,并根据所述压缩后长度申请存储空间。4.根据权利要求1至3任意一项所述的数据处理方法,其特征在于,所述数据的数据类型为布尔型数据或字符型数据时,直接进行序列化存储。5.根据权利要求1至3任意一项所述的数据处理方法,其特征在于,所述数据的数据类型为整型数据或浮点型数据时,所述预设数据转换方式包括:在所述数据为正数时,将所述数据乘以2,得到所述转换后数据;在所述数据为负数时,将所述数据的绝对值乘以2后减1,得到所述转换后数据。6.根据权利要求1至3任意一项所述的数据处理方法,其特征在于:所述数据的数据类型为字符串数据时,将所述字符串数据的长度乘以2,得到所述转换后数据;还包括步骤:将所述字符串数据的内容进行序列化存储。7.一种数据处理装置,其特征在于,包括:数据包获取模块,用于获取待处理数据包;数据读取模块...

【专利技术属性】
技术研发人员:卜祥坤
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1