CN111163100B - 数据结构、通信方法、装置、存储介质及设备 - Google Patents
数据结构、通信方法、装置、存储介质及设备 Download PDFInfo
- Publication number
- CN111163100B CN111163100B CN201911418403.7A CN201911418403A CN111163100B CN 111163100 B CN111163100 B CN 111163100B CN 201911418403 A CN201911418403 A CN 201911418403A CN 111163100 B CN111163100 B CN 111163100B
- Authority
- CN
- China
- Prior art keywords
- data
- parameter
- value
- mapping relation
- parameter value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004891 communication Methods 0.000 title claims abstract description 57
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000013507 mapping Methods 0.000 claims abstract description 106
- 238000004590 computer program Methods 0.000 claims description 10
- 230000010354 integration Effects 0.000 claims description 9
- 230000004048 modification Effects 0.000 claims description 3
- 238000012986 modification Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 18
- 239000002609 medium Substances 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 229910002056 binary alloy Inorganic materials 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000012120 mounting media Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了数据结构、通信方法、装置、存储介质及设备。其中,一种通信方法包括:接收第一数据包,根据第一数据中包含的第一结构标识确定对应的第一映射关系,根据第一映射关系读取第一数据中包含的参数值,第一数据符合的数据结构中包括数据体和结构标识,结构标识与映射关系对应,映射关系包含参数名称和参数值位置的对应关系,参数值位置包括参数值在所述数据体中的位置。本发明实施例提供的技术方案,可以避免因在协议数据中包含参数名称而占用协议数据的空间,进而减少相应的流量耗费。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及数据结构、通信方法、装置、存储介质及设备。
背景技术
目前,客户端与后端(即服务端)进行通信时,所采用的数据协议中,参数一般采用键值对地图(map)来进行定义,其中,键值对中的键指参数名称,值指参数值,对是参数名称和参数值的组合。在这样的协议中,用于数据传输的数据结构中同时包含参数名称和对应的参数值,参数名称占用了很多空间,对于部分传输通道,对协议的大小是有限制的,因此能够传输的参数以及参数值会受到限制,需要改进。
发明内容
本发明实施例提供了数据结构、通信方法、装置、存储介质及设备,可以优化客户端与服务端之间的通信方案。
第一方面,本发明实施例提供了一种数据结构,包括:
数据体,用于承载待传输的参数值,所述参数值在所述数据体中不存在对应的参数名称;
结构标识,与映射关系对应,所述映射关系包含参数名称和参数值位置的对应关系,所述参数值位置包括参数值在所述数据体中的位置。
第二方面,本发明实施例提供了一种通信方法,该方法包括:
接收第一数据包,其中,所述第一数据包中包含符合本发明实施例提供的数据结构的第一数据;
根据所述第一数据中包含的第一结构标识确定对应的第一映射关系;
根据所述第一映射关系读取所述第一数据中包含的参数值。
第三方面,本发明实施例提供了一种通信方法,该方法包括:
获取待传输的参数值;
根据所述参数值和第一映射关系生成对应的第一数据包,其中,所述第一数据包中包含符合本发明实施例提供的数据结构的第一数据,所述第一数据中包含与所述第一映射关系对应的第一结构标识;
发送所述第一数据包。
第四方面,本发明实施例提供了一种通信装置,该装置包括:
数据包接收模块,用于接收第一数据包,其中,所述第一数据包中包含符合本发明实施例提供的数据结构的第一数据;
映射关系确定模块,用于根据所述第一数据中包含的第一结构标识确定对应的第一映射关系;
参数值读取模块,用于根据所述第一映射关系读取所述第一数据中包含的参数值。
第五方面,本发明实施例提供了一种通信装置,该装置包括:
参数值获取模块,用于获取待传输的参数值;
数据包生成模块,用于根据所述参数值和第一映射关系生成对应的第一数据包,其中,所述第一数据包中包含符合本发明实施例提供的数据结构的第一数据,所述第一数据中包含与所述第一映射关系对应的第一结构标识;
数据包发送模块,用于发送所述第一数据包。
第六方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提供的通信方法。
第七方面,本发明实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例提供的通信方法。
本发明实施例中提供的通信方案,在应用于通信双方之间的数据传递的数据结构中设置了与映射关系对应的结构标识以及仅包含参数值而不包含参数名称的数据体,映射关系包含参数名称和参数值位置的对应关系,这样,通信双方根据结构标识可以知晓每个参数值对应的参数名称,从而可以避免因在协议数据中包含参数名称而占用协议数据的空间,进而减少相应的流量耗费。
附图说明
图1为本发明实施例提供的一种整合数值的示意图;
图2为本发明实施例提供的一种显示内容示意图;
图3为本发明实施例提供的一种通信方法的流程示意图;
图4为本发明实施例提供的一种取值掩码示意图;
图5为本发明实施例提供的一种取值过程示意图;
图6为本发明实施例提供的又一种通信方法的流程示意图;
图7为本发明实施例提供的一种置值掩码示意图;
图8为本发明实施例提供的一种置值过程示意图;
图9为本发明实施例提供的一种通信装置的结构框图;
图10为本发明实施例提供的另一种通信装置的结构框图;
图11为本发明实施例提供的一种计算机设备的结构框图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
本发明实施例提供一种数据结构,所述数据结构包括结构标识和数据体。其中,数据体,用于承载待传输的参数值,所述参数值在所述数据体中不存在对应的参数名称;结构标识,与映射关系对应,所述映射关系包含参数名称和参数值位置的对应关系,所述参数值位置包括参数值在所述数据体中的位置。本发明实施例对数据体和结构标识的先后顺序不做限定,一般的,结构标识可位于数据体之前,便于通信双方快速识别结构类型。
本发明实施例中,数据结构可应用于客户端与服务端之间的数据传递,客户端可理解为安装在计算机设备中的应用程序,计算机设备可包括智能手机、平板电脑、笔记本电脑以及个人电脑等设备。本发明实施例对计算机设备中装载的操作系统类型不做限定,例如可以是安卓(Android)操作系统、窗口(Windows)操作系统以及苹果(IOS)操作系统等等。服务端可理解为客户端对应的后端,具体可以是服务器。
示例性的,结构标识可以用于表示数据结构的结构类型,具体表现形式可根据实际需求设置,例如可根据映射关系的种类数量确定,本发明实施例不做限定。结构标识与映射关系对应,而映射关系包含参数名称和参数值位置的对应关系,参数值位置包括参数值在所述数据体中的位置,因此,根据结构标识就可以确定数据体中的各数值具体是对应哪个参数名称的参数值。
相关技术中,客户端与后端的数据协议中,参数都是用键值对map来进行定义的。每次新增一个参数(如控制参数)时都需要新协定一个键值对,然后补充到协议里,客户端和后端再用新的键来传递对应的参数数值。在这样的协议中,用于数据传输的数据结构中同时包含参数名称和对应的参数值,参数名称占用了很多空间,对于部分传输通道,对协议的大小是有限制的,如谷歌的FCM(Firebase Cloud Messaging,火基云消息),就限制了一个协议数据包最大是4KB,因此能够传输的参数以及参数值会受到限制,且协议本身就会有跳转链接、统计数据等很多参数占了很大一部分空间,需要新增参数时也会受到很大的限制。
由于本发明实施例中的数据体中并不包含参数名称,因此,可以根据结构标识对应的映射关系来确定数据体中不同位置所承载的参数值具体对应于哪个参数名称,方便通信双方快速准确地进行参数值的交互。此外,也能够为新增参数争取更多的空间,提升通信双方的交互效率。
本发明实施例中提供的数据结构,在应用于通信双方之间的数据传递的数据结构中设置了与映射关系对应的结构标识以及仅包含参数值而不包含参数名称的数据体,映射关系包含参数名称和参数值位置的对应关系,这样,通信双方根据结构标识可以知晓每个参数值对应的参数名称,从而可以避免因在协议数据中包含参数名称而占用协议数据的空间,进而减少相应的流量耗费。
相关技术中,对于一些参数值为简单类型数据的参数,参数的名称甚至会比参数数值本身更长更占空间,而参数名称是会被加到协议中进行传输的,所以会出现参数名称反而比参数数值更耗费流量的情况。
本发明实施例可针对上述情况进行进一步优化。示例性的,所述数据体中包含至少一个预设类型的整合数值,所述整合数值中包含至少两个简单参数值,所述简单参数值包括能够采用预设数量的二元值进行表示的参数值。这样设置的好处在于,将简单类型数据整合成一个数据,可以进一步减少协议通讯时的流量耗费。其中,简单参数值可理解为数值为简单类型数据的参数值,简单类型数据可包括可以用n个二元值进行表示的数据,例如布尔值和整型数等,其中,n即预设数量,一般的,n<=64。将至少两个简单参数值整合成为一个数值,即整合数值。可选的,整合数值的类型,也即预设类型,可包括Byte、Short、Int、Long、Float、Double、Boolean、以及Char等,可根据实际需求进行选取,一般的,可采用Int或Long。
示例性的,所述参数值位置包括简单参数值在所属整合数值中占用的二进制位。这样设置的好处在于,可以准确地读取出整合数值中包含的各参数值。
示例性的,在Java语言中,一个Int数值有32个二元位,一个Long数值有64个二元位。一个简单类型数据,可以只用一个Int或Long数值里的部分二元位来表示。
图1为本发明实施例提供的一种整合数值的示意图,以一个Int数值为例,换算成二进制就是一个32位的二进制,图1中示出了一个容纳了4个简单类型数据参数A、B、C和D的Int数值,也即,该整合数值中包含了参数名称分别为A、B、C和D的参数分别对应的简单参数值。从二进制的角度来看,从高位到低位,每8位用做一个参数的值,也即每8位承载一个简单参数值。对于8位来说,共有0至255这256个值可用,当然,还可以设置更少或更多的位来承载一个简单参数值,可根据简单参数值的取值范围来设定。例如,一个Int数值中的每一位代表一个二元参数,对于一个二元位,若值为“1”,则可表示true(真),若值为“0”,则可表示false(假)。
另外,上述举例中,对整合数值中的二进制位进行了均分,也可按照实际需求进行不等分割,如可同时存在16位对应一个参数,4位对应一个参数,3位对应一个参数,1位对应一个参数等。
为了进一步节省流量耗费,可选的,将所有简单参数值整合到至少一个整合数值中。
为了便于说明,下面结合具体的应用场景来描述本发明实施例提供的数据结构。对于一些客户端中的显示内容,服务端一般会向客户端发送该显示内容相关的控制参数,这些控制参数一般都是简单类型数据,因此,可以将简单参数值整合到整合数值中。
图2为本发明实施例提供的一种显示内容样式示意图,如图所示,一些短视频应用程序中,存在如图2所示的显示内容,该显示内容具体可以是推送(Push)消息,Push样式上会有很多的可控点,例如有无角标、图片形状以及兜底图样式等,这些控制参数的值一般是布尔二元值,或是0到10范围内的整型数值,这些参数值都是简单类型数据。图2中示出的是一个有角标、图片形状为圆角矩形以及兜底图为深灰色纯色图的Push样式。但Push的第三方的传输通道,如谷歌的FCM,是对数据大小有限制的,所以在增加参数时可以使用本发明实施例提供的方案来避免把参数命名加到协议里,进而减少协议增加的数据大小,同时也能保证对Push样式的细粒度控制。
图3为本发明实施例提供的一种通信方法的流程示意图,该方法可以由通信装置执行,其中该装置可由软件和/或硬件实现,一般可集成在计算机设备中。如图3所示,该方法包括:
步骤301、接收第一数据包。
其中,所述第一数据包中包含符合本发明实施例提供的数据结构的第一数据。第一数据包还可以包含其他数据,本发明实施例不做限定。
示例性的,本发明实施例中的计算机设备也即数据接收方,具体可以是客户端对应的计算机设备,也可以是服务端对应的计算机设备。
步骤302、根据所述第一数据中包含的第一结构标识确定对应的第一映射关系。
示例性的,由于结构标识用于可表示数据结构的结构类型,且结构标识与映射关系对应,因此,可以根据第一结构标识确定对应的第一映射关系。第一映射关系中,包含了第一数据中的参数值位置与参数名称的对应关系,参数值位置包括参数值在数据体中的位置。若第一数据中的参数值包含简单参数值,参数值位置还可包括简单参数值在所属整合数值中占用的二进制位。
步骤303、根据所述第一映射关系读取所述第一数据中包含的参数值。
示例性的,由于第一映射关系中包含了第一数据中的参数值位置与参数名称的对应关系,因此,数据接收方可以依据第一映射关系确定第一数据需要传输的是哪些参数,以及从第一数据中读取这些参数对应的参数值。
本发明实施例提供的通信方法,数据接收方接收数据发送方发送的第一数据包,该数据包中的第一数据的数据结构中设置了与映射关系对应的结构标识以及仅包含参数值而不包含参数名称的数据体,映射关系包含参数名称和参数值位置的对应关系,这样,数据接收方根据结构标识可以知晓每个参数值对应的参数名称,并从第一数据中读取各参数名称对应的参数值,从而可以避免因在协议数据中包含参数名称而占用协议数据的空间,进而减少相应的流量耗费,同时,还能够提升通信效率。
在一些实施例中,在所述接收第一数据包之前,还包括:与数据发送方协定第一结构标识对应的第一映射关系。具体的协定方式本发明实施例不做限定,例如,可以由数据发送方规定第一结构标识对应的第一映射关系,并直接发送给数据接收方。
在一些实施例中,当第一数据中的数据体中包含至少一个预设类型的整合数值,整合数值中包含至少两个简单参数值时,所述根据所述第一映射关系读取所述第一数据中包含的参数值,包括:对于所述第一映射关系中包含的每个对应简单参数值的参数名称,根据所述第一映射关系获取当前参数名称对应的取值掩码,对所述取值掩码与对应的第一整合数值进行位与运算,以对所述第一整合数值中除所述当前参数名称对应的二进制位之外的其他位进行清零,得到第一中间数值,将所述第一中间数值移至最低位,得到所述当前参数名称对应的参数值。这样设置的好处在于,能够快速准确地读取各参数名称对应的简单参数值。
示例性的,以图1举例中的参数A为例,图4为本发明实施例提供的一种取值掩码示意图,也即参数A的取值掩码,可见,参数A对应的8个二元位上均为“1”,其他二元位上均为“0”,也即参数A的取值掩码为16进制的0xFF000000。图5为本发明实施例提供的一种取值过程示意图,在第一数据中的第一整合数值中,假设参数A对应的8个二元位上的数值为“00001111”,参数A为在协议中新增的参数,其他参数B、C和D对应的二元位上的数值分别为“01010101”、“01010010”和“01001001”,在对第一整合数值与图4中的取值掩码进行与运算之后,参数A对应的二元位上的数值不变,而其他参数对应的二元位被清零,得到第一中间数值,然后将第一中间数值向右移24位,即移至最低位,便得到了参数A对应的实际参数值“00001111”。对于参数B、C和D对应的参数值,读取方法类似,本发明实施例不再赘述。
图6为本发明实施例提供的又一种通信方法的流程示意图,该方法可以由通信装置执行,其中该装置可由软件和/或硬件实现,一般可集成在计算机设备中。如图6所示,该方法包括:
步骤601、获取待传输的参数值。
示例性的,本发明实施例中的计算机设备也即数据发送方,具体可以是客户端对应的计算机设备,也可以是服务端对应的计算机设备。
步骤602、根据所述参数值和第一映射关系生成对应的第一数据包。
其中,所述第一数据包中包含符合本发明实施例提供的数据结构的第一数据,所述第一数据中包含与所述第一映射关系对应的第一结构标识。第一数据包还可以包含其他数据,本发明实施例不做限定。
步骤603、发送所述第一数据包。
示例性的,按照第一映射关系生成对应的第一数据包并发送给数据接收方,数据接收方可以依据第一映射关系确定第一数据需要传输的是哪些参数,以及从第一数据中读取这些参数对应的参数值。
本发明实施例提供的通信方法,数据发送方获取待传输的参数值后,根据参数值和第一映射关系生成对应的第一数据包,并发送给数据接收方,该数据包中的第一数据的数据结构中设置了与映射关系对应的结构标识以及仅包含参数值而不包含参数名称的数据体,映射关系包含参数名称和参数值位置的对应关系,这样,数据接收方根据结构标识可以知晓每个参数值对应的参数名称,并从第一数据中读取各参数名称对应的参数值,从而可以避免因在协议数据中包含参数名称而占用协议数据的空间,进而减少相应的流量耗费,同时,还能够提升通信效率。
在一些实施例中,在所述发送所述第一数据包之前,还包括:与数据接收方协定第一结构标识对应的第一映射关系。具体的协定方式本发明实施例不做限定,例如,可以由数据发送方规定第一结构标识对应的第一映射关系,并直接发送给数据接收方。
在一些实施例中,当第一数据中的数据体中包含至少一个预设类型的整合数值,整合数值中包含至少两个简单参数值时,所述根据所述参数值和第一映射关系生成对应的第一数据包,包括:对于所述第一映射关系中包含的每个对应简单参数值的参数名称,根据所述第一映射关系将当前参数名称对应的参数值移至对应的二进制位,得到所述当前参数名称对应的第二中间数值;对所有第二中间数值进行位与运算,得到第二整合数值;根据所述第二整合数值生成对应的第一数据包。这样设置的好处在于,能够快速准确地将各参数名称对应的简单参数值填写到满足第一映射关系的二进制位上。
示例性的,可参考图5中参数A的实际数值也即获取到的参数A对应的待传输的参数值,将参数值左移至最高位,则将参数A对应的参数值移至对应的二进制位,得到参数A对应的第二中间数值。对于参数B,则将参数值左移16位,对于参数C,则将参数值左移8位,对于参数D,则将参数值左移0位。在得到参数A、参数B、参数C和参数D分别对应的第二中间数值后,对4个第二中间数值进行位与运算,则可得到第二整合数值,并根据第二整合数值生成对应的第一数据包。其中,第一数据包在还可能包含其他参数值或其他整合数值,本发明实施例不作限定。
在一些实施例中,当第一数据中的数据体中包含至少一个预设类型的整合数值,整合数值中包含至少两个简单参数值时,所述获取待传输的参数值,包括:获取第二数据,确定所述第二数据中的待修改的第一参数值以及作为修改目标的第二参数值。所述根据所述参数值和第一映射关系生成对应的第一数据包,包括:根据第一映射关系获取所述第一参数值对应的置值掩码,对所述置值掩码与所述第二数据中对应的第三整合数值进行位与运算,以对所述第一参数值对应的二进制位进行清零,得到第三中间数值;根据所述第一映射关系将所述第二参数值移至所述第一参数值对应的二进制位,得到第四中间数值;对所述第三中间数值和所述第四中间数值进行或运算,得到第四整合数值;根据所述第四整合数值生成对应的第一数据包。这样设置的好处在于,可以方便对简单参数值进行修改,例如可以在错误的数据基础上进行修改,也可以在上一次传输的数据基础上进行修改。
示例性的,仍以图1举例中的参数A为例,图7为本发明实施例提供的一种置值掩码示意图,也即参数A的置值掩码,可见,参数A对应的8个二元位上均为“0”,其他二元位上均为“1”,也即参数A的取值掩码为16进制的0x00FFFFFF。图8为本发明实施例提供的一种置值过程示意图,假设需要将参数A的值从3(第一参数值)修改为15(第二参数值)。将第二参数值“00001111”左移24位(也即移至参数A的第一参数值对应的二进制位),得到第四中间数值。对第二数据中对应的第三整合数值与参数A的置值掩码进行位与运算,将参数A对应的8个二进制位清零,得到第三中间数值,也即从“00000011”变成“00000000”。再对第三中间数值和第四中间数值进行或运算,得到第四整合数值,也即把A的新参数值“00001111”填入到原来的整合数值中,得到第四整合数值,然后再根据第四整合数值生成对应的第一数据包。
图9为本发明实施例提供的一种通信装置的结构框图,该装置可由软件和/或硬件实现,一般可集成在计算机设备中,可通过执行通信方法来进行通信。
如图9所示,该装置包括:
数据包接收模块901,用于接收第一数据包,其中,所述第一数据包中包含符合本发明实施例提供的数据结构的第一数据;
映射关系确定模块902,用于根据所述第一数据中包含的第一结构标识确定对应的第一映射关系;
参数值读取模块903,用于根据所述第一映射关系读取所述第一数据中包含的参数值。
本发明实施例提供的通信装置,数据接收方接收数据发送方发送的第一数据包,该数据包中的第一数据的数据结构中设置了与映射关系对应的结构标识以及仅包含参数值而不包含参数名称的数据体,映射关系包含参数名称和参数值位置的对应关系,这样,数据接收方根据结构标识可以知晓每个参数值对应的参数名称,并从第一数据中读取各参数名称对应的参数值,从而可以避免因在协议数据中包含参数名称而占用协议数据的空间,进而减少相应的流量耗费,同时,还能够提升通信效率。
在一些实施例中,该装置还包括:第一协定模块,用于在所述接收第一数据包之前,与数据发送方协定第一结构标识对应的第一映射关系。
在一些实施例中,当第一数据中的数据体中包含至少一个预设类型的整合数值,整合数值中包含至少两个简单参数值时,所述根据所述第一映射关系读取所述第一数据中包含的参数值,包括:对于所述第一映射关系中包含的每个对应简单参数值的参数名称,根据所述第一映射关系获取当前参数名称对应的取值掩码,对所述取值掩码与对应的第一整合数值进行位与运算,以对所述第一整合数值中除所述当前参数名称对应的二进制位之外的其他位进行清零,得到第一中间数值,将所述第一中间数值移至最低位,得到所述当前参数名称对应的参数值。
图10为本发明实施例提供的另一种通信装置的结构框图,该装置可由软件和/或硬件实现,一般可集成在计算机设备中,可通过执行通信方法来进行通信。
如图10所示,该装置包括:
参数值获取模块1001,用于获取待传输的参数值;
数据包生成模块1002,用于根据所述参数值和第一映射关系生成对应的第一数据包,其中,所述第一数据包中包含符合本发明实施例提供的数据结构的第一数据,所述第一数据中包含与所述第一映射关系对应的第一结构标识;
数据包发送模块1003,用于发送所述第一数据包。
本发明实施例提供的通信装置,数据发送方获取待传输的参数值后,根据参数值和第一映射关系生成对应的第一数据包,并发送给数据接收方,该数据包中的第一数据的数据结构中设置了与映射关系对应的结构标识以及仅包含参数值而不包含参数名称的数据体,映射关系包含参数名称和参数值位置的对应关系,这样,数据接收方根据结构标识可以知晓每个参数值对应的参数名称,并从第一数据中读取各参数名称对应的参数值,从而可以避免因在协议数据中包含参数名称而占用协议数据的空间,进而减少相应的流量耗费,同时,还能够提升通信效率。
在一些实施例中,该装置还包括:第二协定模块,用于在所述发送所述第一数据包之前,还包括:与数据接收方协定第一结构标识对应的第一映射关系。
在一些实施例中,当第一数据中的数据体中包含至少一个预设类型的整合数值,整合数值中包含至少两个简单参数值时,所述根据所述参数值和第一映射关系生成对应的第一数据包,包括:对于所述第一映射关系中包含的每个对应简单参数值的参数名称,根据所述第一映射关系将当前参数名称对应的参数值移至对应的二进制位,得到所述当前参数名称对应的第二中间数值;对所有第二中间数值进行位与运算,得到第二整合数值;根据所述第二整合数值生成对应的第一数据包。
在一些实施例中,当第一数据中的数据体中包含至少一个预设类型的整合数值,整合数值中包含至少两个简单参数值时,所述获取待传输的参数值,包括:获取第二数据,确定所述第二数据中的待修改的第一参数值以及作为修改目标的第二参数值。所述根据所述参数值和第一映射关系生成对应的第一数据包,包括:根据第一映射关系获取所述第一参数值对应的置值掩码,对所述置值掩码与所述第二数据中对应的第三整合数值进行位与运算,以对所述第一参数值对应的二进制位进行清零,得到第三中间数值;将所述第二参数值移至所述第一参数值对应的二进制位,得到第四中间数值;对所述第三中间数值和所述第四中间数值进行或运算,得到第四整合数值;根据所述第四整合数值生成对应的第一数据包。
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本发明实施例提供的通信方法。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDRRAM、SRAM、EDORAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
本发明实施例提供了一种计算机设备,该计算机设备中可集成本发明实施例提供的通信装置。图11为本发明实施例提供的一种计算机设备的结构框图。计算机设备1100包括存储器1101、处理器1102及存储在存储器1101上并可在处理器1102上运行的计算机程序,所述处理器1102执行所述计算机程序时实现本发明实施例提供的通信方法。
本发明实施例提供的计算机设备,在与通信对方进行数据交互时,所传递的数据结构中设置了与映射关系对应的结构标识以及仅包含参数值而不包含参数名称的数据体,映射关系包含参数名称和参数值位置的对应关系,这样,通信双方根据结构类型可以知晓每个参数值对应的参数名称,从而可以避免因在协议数据中包含参数名称而占用协议数据的空间,进而减少相应的流量耗费。
上述实施例中提供的通信装置、存储介质以及计算机设备可执行本发明任意实施例所提供的通信方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的通信方法。
注意,上述仅为本发明的较佳实施例。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由权利要求范围决定。
Claims (13)
1.一种通信方法,其特征在于,包括:
接收第一数据包,其中,所述第一数据包中包含符合如下数据结构的第一数据;
根据所述第一数据中包含的第一结构标识确定对应的第一映射关系;
根据所述第一映射关系读取所述第一数据中包含的参数值;
所述数据结构包括:数据体,用于承载待传输的参数值,所述参数值在所述数据体中不存在对应的参数名称;
结构标识,与映射关系对应,所述映射关系包含参数名称和参数值位置的对应关系,所述参数值位置包括所述参数值在所述数据体中的位置;
所述数据体中包含至少一个预设类型的整合数值,所述整合数值中包含至少两个简单参数值,所述简单参数值包括能够采用预设数量的二元值进行表示的参数值。
2.根据权利要求1所述的方法,其特征在于,所述参数值位置包括简单参数值在所属整合数值中占用的二进制位。
3.根据权利要求1或2所述的方法,其特征在于,所述预设类型包括Int和/或Long。
4.根据权利要求1所述的方法,其特征在于,在所述接收第一数据包之前,还包括:
与数据发送方协定第一结构标识对应的第一映射关系。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第一映射关系读取所述第一数据中包含的参数值,包括:
对于所述第一映射关系中包含的每个对应简单参数值的参数名称,根据所述第一映射关系获取当前参数名称对应的取值掩码,对所述取值掩码与对应的第一整合数值进行位与运算,以对所述第一整合数值中除所述当前参数名称对应的二进制位之外的其他位进行清零,得到第一中间数值,将所述第一中间数值移至最低位,得到所述当前参数名称对应的参数值。
6.一种通信方法,其特征在于,包括:
获取待传输的参数值;
根据所述参数值和第一映射关系生成对应的第一数据包,其中,所述第一数据包中包含符合如下数据结构的第一数据,所述第一数据中包含与所述第一映射关系对应的第一结构标识;
发送所述第一数据包;
所述数据结构包括:数据体,用于承载待传输的参数值,所述参数值在所述数据体中不存在对应的参数名称;
结构标识,与映射关系对应,所述映射关系包含参数名称和参数值位置的对应关系,所述参数值位置包括所述参数值在所述数据体中的位置;
所述数据体中包含至少一个预设类型的整合数值,所述整合数值中包含至少两个简单参数值,所述简单参数值包括能够采用预设数量的二元值进行表示的参数值。
7.根据权利要求6所述的方法,其特征在于,在所述发送所述第一数据包之前,还包括:
与数据接收方协定第一结构标识对应的第一映射关系。
8.根据权利要求6或7所述的方法,其特征在于,所述根据所述参数值和第一映射关系生成对应的第一数据包,包括:
对于所述第一映射关系中包含的每个对应简单参数值的参数名称,根据所述第一映射关系将当前参数名称对应的参数值移至对应的二进制位,得到所述当前参数名称对应的第二中间数值;
对所有第二中间数值进行位与运算,得到第二整合数值;
根据所述第二整合数值生成对应的第一数据包。
9.根据权利要求6或7所述的方法,其特征在于,所述获取待传输的参数值,包括:
获取第二数据,确定所述第二数据中的待修改的第一参数值以及作为修改目标的第二参数值;
所述根据所述参数值和第一映射关系生成对应的第一数据包,包括:
根据第一映射关系获取所述第一参数值对应的置值掩码,对所述置值掩码与所述第二数据中对应的第三整合数值进行位与运算,以对所述第一参数值对应的二进制位进行清零,得到第三中间数值;
将所述第二参数值移至所述第一参数值对应的二进制位,得到第四中间数值;
对所述第三中间数值和所述第四中间数值进行或运算,得到第四整合数值;
根据所述第四整合数值生成对应的第一数据包。
10.一种通信装置,其特征在于,包括:
数据包接收模块,用于接收第一数据包,其中,所述第一数据包中包含符合如下数据结构的第一数据;
映射关系确定模块,用于根据所述第一数据中包含的第一结构标识确定对应的第一映射关系;
参数值读取模块,用于根据所述第一映射关系读取所述第一数据中包含的参数值;
所述数据结构包括:数据体,用于承载待传输的参数值,所述参数值在所述数据体中不存在对应的参数名称;
结构标识,与映射关系对应,所述映射关系包含参数名称和参数值位置的对应关系,所述参数值位置包括所述参数值在所述数据体中的位置;
所述数据体中包含至少一个预设类型的整合数值,所述整合数值中包含至少两个简单参数值,所述简单参数值包括能够采用预设数量的二元值进行表示的参数值。
11.一种通信装置,其特征在于,包括:
参数值获取模块,用于获取待传输的参数值;
数据包生成模块,用于根据所述参数值和第一映射关系生成对应的第一数据包,其中,所述第一数据包中包含符合如下数据结构的第一数据,所述第一数据中包含与所述第一映射关系对应的第一结构标识;
数据包发送模块,用于发送所述第一数据包;
所述数据结构包括:数据体,用于承载待传输的参数值,所述参数值在所述数据体中不存在对应的参数名称;
结构标识,与映射关系对应,所述映射关系包含参数名称和参数值位置的对应关系,所述参数值位置包括所述参数值在所述数据体中的位置;
所述数据体中包含至少一个预设类型的整合数值,所述整合数值中包含至少两个简单参数值,所述简单参数值包括能够采用预设数量的二元值进行表示的参数值。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-9中任一所述的方法。
13.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911418403.7A CN111163100B (zh) | 2019-12-31 | 2019-12-31 | 数据结构、通信方法、装置、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911418403.7A CN111163100B (zh) | 2019-12-31 | 2019-12-31 | 数据结构、通信方法、装置、存储介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111163100A CN111163100A (zh) | 2020-05-15 |
CN111163100B true CN111163100B (zh) | 2022-10-11 |
Family
ID=70560506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911418403.7A Active CN111163100B (zh) | 2019-12-31 | 2019-12-31 | 数据结构、通信方法、装置、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111163100B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113645142A (zh) * | 2021-07-14 | 2021-11-12 | 远景智能国际私人投资有限公司 | 数据传输方法、装置及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105141627A (zh) * | 2015-09-17 | 2015-12-09 | 北京金山安全软件有限公司 | 一种数据发送和接收方法、装置及设备 |
CN107659380A (zh) * | 2017-09-05 | 2018-02-02 | 上海歌尔泰克机器人有限公司 | 消息发送、消息读取方法、设备及系统 |
CN108496155A (zh) * | 2017-06-15 | 2018-09-04 | 深圳市大疆创新科技有限公司 | 参数处理方法、设备、机器可读存储介质以及系统 |
CN109167750A (zh) * | 2018-07-06 | 2019-01-08 | 北京金山安全软件有限公司 | 一种数据包传输方法、装置、电子设备及存储介质 |
CN110069452A (zh) * | 2019-04-26 | 2019-07-30 | 北京字节跳动网络技术有限公司 | 数据存储方法、装置和计算机可读存储介质 |
WO2019184784A1 (zh) * | 2018-03-27 | 2019-10-03 | 华为技术有限公司 | 一种通信方法及相关设备 |
-
2019
- 2019-12-31 CN CN201911418403.7A patent/CN111163100B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105141627A (zh) * | 2015-09-17 | 2015-12-09 | 北京金山安全软件有限公司 | 一种数据发送和接收方法、装置及设备 |
CN108496155A (zh) * | 2017-06-15 | 2018-09-04 | 深圳市大疆创新科技有限公司 | 参数处理方法、设备、机器可读存储介质以及系统 |
CN107659380A (zh) * | 2017-09-05 | 2018-02-02 | 上海歌尔泰克机器人有限公司 | 消息发送、消息读取方法、设备及系统 |
WO2019184784A1 (zh) * | 2018-03-27 | 2019-10-03 | 华为技术有限公司 | 一种通信方法及相关设备 |
CN109167750A (zh) * | 2018-07-06 | 2019-01-08 | 北京金山安全软件有限公司 | 一种数据包传输方法、装置、电子设备及存储介质 |
CN110069452A (zh) * | 2019-04-26 | 2019-07-30 | 北京字节跳动网络技术有限公司 | 数据存储方法、装置和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111163100A (zh) | 2020-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107645562B (zh) | 数据传输处理方法、装置、设备及系统 | |
US20190034311A1 (en) | Resource configuration method, mobile terminal and storage medium | |
CN112311600A (zh) | 基于网络数据分析的策略建议生成方法、装置 | |
US10303529B2 (en) | Protocol for communication of data structures | |
CN109067754B (zh) | 一种请求端与服务端的通信方法及系统 | |
CN111163100B (zh) | 数据结构、通信方法、装置、存储介质及设备 | |
CN110519388B (zh) | 区块链请求的处理方法、装置、电子设备及可读存储介质 | |
WO2024183587A1 (zh) | 消息的传输方法及装置、非易失性可读存储介质及电子装置 | |
CN114125940A (zh) | 数据报文发送方法、处理方法、装置、设备及数据报文 | |
CN109388388B (zh) | 功能模块间的信息交互方法、装置、设备及存储介质 | |
CN114281876A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN111327680B (zh) | 认证数据同步方法、装置、系统、计算机设备和存储介质 | |
CN112422485B (zh) | 一种传输控制协议的通信方法及装置 | |
CN105991683A (zh) | 数据传输方法及装置 | |
CN109766347B (zh) | 一种数据更新方法、装置、系统、计算机设备及存储介质 | |
CN107592361B (zh) | 一种基于双ib网络的数据传输方法、装置、设备 | |
CN110661895A (zh) | 一种服务器的网络地址映射方法及网络地址映射设备 | |
CN112312396B (zh) | 一种NoC追踪数据的生成方法及相关装置 | |
CN114124275B (zh) | 一种时间同步方法、装置、设备及存储介质 | |
CN111459819B (zh) | 软件测试方法及装置、电子设备、计算机可读介质 | |
CN109428861A (zh) | 网络通信方法及设备 | |
CN108650049B (zh) | 一种信道检测方法、装置及基站 | |
CN105072047A (zh) | 一种报文传输及处理方法 | |
CN115004160A (zh) | 数据处理方法、装置、处理设备以及数据存储系统 | |
WO2023097903A1 (zh) | 报文传输方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231008 Address after: 31a, 15 / F, building 30, maple mall, bangrang Road, Brazil, Singapore Patentee after: Baiguoyuan Technology (Singapore) Co.,Ltd. Address before: 511400 floor 5-13, West Tower, building C, 274 Xingtai Road, Shiqiao street, Panyu District, Guangzhou City, Guangdong Province Patentee before: GUANGZHOU BAIGUOYUAN INFORMATION TECHNOLOGY Co.,Ltd. |