CN107483399B - 一种在远程过程调用中的信息封装方法及装置 - Google Patents

一种在远程过程调用中的信息封装方法及装置 Download PDF

Info

Publication number
CN107483399B
CN107483399B CN201710524061.1A CN201710524061A CN107483399B CN 107483399 B CN107483399 B CN 107483399B CN 201710524061 A CN201710524061 A CN 201710524061A CN 107483399 B CN107483399 B CN 107483399B
Authority
CN
China
Prior art keywords
type
parameter
calling
serialized
field
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
Application number
CN201710524061.1A
Other languages
English (en)
Other versions
CN107483399A (zh
Inventor
杨亮
张文明
陈少杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xi'an Crosstrust Network Technology Co.,Ltd.
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201710524061.1A priority Critical patent/CN107483399B/zh
Publication of CN107483399A publication Critical patent/CN107483399A/zh
Application granted granted Critical
Publication of CN107483399B publication Critical patent/CN107483399B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种在远程过程调用中的信息封装方法,包括:在调用端进行远程过程调用时,确定用于调用所述远程过程的调用信息的数据结构,所述数据结构中包含预设字段;获取用于调用所述远程过程的调用参数;对所述调用参数进行序列化,获得序列化调用参数;将所述序列化调用参数写入所述预设字段中,获得所述调用信息。本发明实现了提高远程过程调用时的信息传输效率的技术效果。同时,本发明还公开了一种在远程过程调用中的信息封装装置。

Description

一种在远程过程调用中的信息封装方法及装置
技术领域
本发明涉及网络直播技术领域,尤其涉及一种在远程过程调用中的信息封装方法及装置。
背景技术
随着网络通信技术的进步和宽带网络的提速,网络直播得到了越来越多的发展和应用。在网络直播过程中,经常会进行远程过程调用。
所谓远程过程调用,就是一个进程调用另外一个进程所提供的方法,在调用端的角度,远程过程调用和调用本进程的函数一样。在远程过程调用中,需要将调用端的调用信息通过网络发送给被调用端,被调用端处理完成相应的服务后,将产生的结果信息通过网络返回给调用端。
但是,在现有技术中,在通过网络向被调用端发送调用信息时,信息传输效率较低,这严重影响了远程过程的调用。
发明内容
本申请实施例通过提供一种在远程过程调用中的信息封装方法及装置,解决了现有技术中在进行远程过程调用时,存在信息传输效率低的技术问题,实现了提高远程过程调用时的信息传输效率的技术效果。
第一方面,本申请通过本申请的一实施例提供如下技术方案:
一种在远程过程调用中的信息封装方法,包括:
在调用端进行远程过程调用时,确定用于调用所述远程过程的调用信息的数据结构,所述数据结构中包含预设字段;
获取用于调用所述远程过程的调用参数;
对所述调用参数进行序列化,获得序列化调用参数;
将所述序列化调用参数写入所述预设字段中,获得所述调用信息。
优选地,所述对所述调用参数进行序列化,获得序列化调用参数,包括:
确定所述调用参数的数据类型;
将所述调用参数的数据类型转化为远程过程调用参数IRpcArgument类型,获得所述序列化调用参数。
优选地,所述调用参数的数据类型,包括:
整数类型、或字节类型、或浮点类型、或美国信息交换标准码ASCII字符串类型、或统一的字符编码标准Unicode字符串类型、或数组类型、或对象类型。
优选地,所述将所述调用参数的数据类型转化为远程过程调用参数IRpcArgument类型,包括:
在所述调用参数的数据类型为整数类型时,将所述调用参数的整数值设置到所述序列化调用参数的m_intValue字段中,并将所述序列化调用参数的m_type字段设置为RAT_I32类型;
在所述调用参数的数据类型为字节类型时,将所述调用参数的字节数值设置到所述序列化调用参数的m_i8Value字段中,并将所述序列化调用参数的m_type字段设置为RAT_I8类型;
在所述调用参数的数据类型为浮点类型时,将所述调用参数的浮点值设置到所述序列化调用参数的m_singleValue字段中,并将所述序列化调用参数的m_type字段设置为RAT_SINGLE类型;
在所述调用参数的数据类型为ASCII字符串类型时,将所述调用参数的ASCII字符串复制到所述序列化调用参数的m_charBuffer字段中,并将所述序列化调用参数的m_type字段设置为RAT_STRING类型;
在所述调用参数的数据类型为Unicode字符串类型时,将所述调用参数的Unicode字符串复制到所述序列化调用参数的m_wcharBuffer字段中,并将所述序列化调用参数的m_type字段设置为RAT_WSTRING类型;
在所述调用参数的数据类型为数组类型时,将所述调用参数的数组元素设置到所述序列化调用参数的m_elementNum字段中,并将所述序列化调用参数的m_type字段设置为RAT_BLOB类型;
在所述调用参数的数据类型为对象类型时,将所述调用参数的结构体元素设置到所述序列化调用参数的m_elementNum字段中,并将所述序列化调用参数的m_type字段设置为RAT_OBJECT类型。
优选地,所述将所述序列化调用参数写入所述预设字段中,包括:
基于所述调用参数的数据类型,将所述序列化调用参数写入所述预设字段中。
优选地,在所述调用参数的数据类型为非对象类型时,所述基于所述调用参数的数据类型,将所述序列化调用参数写入所述预设字段中,包括:
若所述调用参数的数据类型为非数组类型,则在所述预设字段中依次加入第一字节和第二字节,所述第一字节用于保存所述序列化调用参数的m_type字段中的信息,所述第二字节用于保存所述调用参数的参数值。
优选地,在所述调用参数的数据类型为非对象类型时,所述基于所述调用参数的数据类型,将所述序列化调用参数写入所述预设字段中,包括:
若所述调用参数的数据类型为数组类型,则在所述预设字段中依次加入第一字节、第三字节和第二字节,所述第一字节用于保存所述序列化调用参数的m_type字段中的信息,所述第三字节用于所述调用参数中的数组元素的个数,所述第二字节用于保存所述调用参数的参数值。
第二方面,本申请通过本申请的一实施例提供如下技术方案:
一种在远程过程调用中的信息封装装置,包括:
确定单元,用于在调用端进行远程过程调用时,确定用于调用所述远程过程的调用信息的数据结构,所述数据结构中包含预设字段;
获取单元,用于获取用于调用所述远程过程的调用参数;
序列化单元,用于对所述调用参数进行序列化,获得序列化调用参数;
写入单元,用于将所述序列化调用参数写入所述预设字段中,获得所述调用信息。
第三方面,本申请通过本申请的一实施例提供如下技术方案:
一种在远程过程调用中的信息封装装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
在调用端进行远程过程调用时,确定用于调用所述远程过程的调用信息的数据结构,所述数据结构中包含预设字段;获取用于调用所述远程过程的调用参数;对所述调用参数进行序列化,获得序列化调用参数;将所述序列化调用参数写入所述预设字段中,获得所述调用信息。
第四方面,本申请通过本申请的一实施例提供如下技术方案:
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:
在调用端进行远程过程调用时,确定用于调用所述远程过程的调用信息的数据结构,所述数据结构中包含预设字段;获取用于调用所述远程过程的调用参数;对所述调用参数进行序列化,获得序列化调用参数;将所述序列化调用参数写入所述预设字段中,获得所述调用信息。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
在本申请实施例中,公开了一种在远程过程调用中的信息封装方法,包括:在调用端进行远程过程调用时,确定用于调用所述远程过程的调用信息的数据结构,所述数据结构中包含预设字段;获取用于调用所述远程过程的调用参数;对所述调用参数进行序列化,获得序列化调用参数;将所述序列化调用参数写入所述预设字段中,获得所述调用信息。在进行远程过程调用时,采用本方法获得调用信息,再将调用信息通过网络发送给远程过程的被调用端,可以大大提高远程过程调用时的信息传输效率,从而解决了现有技术中在进行远程过程调用时,存在信息传输效率低的技术问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种在远程过程调用中的信息封装方法的流程图;
图2为本申请实施例中一种在远程过程调用中的信息封装装置200的结构图;
图3为本申请实施例中一种在远程过程调用中的信息封装装置300的结构图;
图4为本申请实施例中一种计算机可读存储介质的示意图。
具体实施方式
本申请实施例通过提供一种在远程过程调用中的信息封装方法及装置,解决了现有技术中在进行远程过程调用时,存在信息传输效率低的技术问题,实现了提高远程过程调用时的信息传输效率的技术效果。
本申请实施例的技术方案为解决上述技术问题,总体思路如下:
一种在远程过程调用中的信息封装方法,包括:在调用端进行远程过程调用时,确定用于调用所述远程过程的调用信息的数据结构,所述数据结构中包含预设字段;获取用于调用所述远程过程的调用参数;对所述调用参数进行序列化,获得序列化调用参数;将所述序列化调用参数写入所述预设字段中,获得所述调用信息。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
实施例一
本实施例提供了一种在远程过程调用中的信息封装方法,应用于终端设备中,所述终端设备可以是:PC(Personal Computer,个人电脑)、或智能手机、或平板电脑、或智能电视等等,对于所述终端设备具体是何种设备,本实施例不做具体限定。
如图1所示,所述在远程过程调用中的信息封装方法,包括:
步骤S101:在调用端进行远程过程调用时,确定用于调用远程过程的调用信息的数据结构,所述数据结构中包含一预设字段。其中,所述预设字段即为后文中的args字段。
在本实施例中,为上述调用信息提供了一种新型数据结构,即,RpcMessage(Remote Procedure CallsMessage,远程过程调用信息)结构,该数据结构是基于二进制的,在RpcMessage结构中包含以下字段(即:下文中的A1~A7中的字段):
(A1)Version(版本),该字段用来代表该RpcMessage的版本信息,在不同进程之间传输信息(例如:调用端发给被调用端的调用信息,或调用端返回给被调用端的结果信息)时,必须保证版本的一致性,如果版本不一致,就代表两个不同进程之间使用的数据结构不一致,这可能会导致逻辑混乱,程序崩溃等问题。
(A2)rpcType(Remote Procedure CallsType,远程过程调用类型),该字段用来标识传输信息是来自调用端进程的调用消息,还是来自被调用端进程的结果消息。当该字段的值为RPC_MESSAGE_REQUEST时,代表来自调用端进程的调用消息,当该字段的值为RPC_MESSAGE_RESPONSE时,代表来自被调用端进程的结果消息。
(A3)gid(唯一标识符符),该字段用来唯一标识一个传输信息,从调用端端生成,跟随调用信息发送给被调用端处理后,被调用端会将该gid连同结果信息返回给调用端。
(A4)numArgs,该字段值用来表示调用端调用远程方法时传入的调用参数个数,或者,该字段值用来表示被调用端返回给调用端的结果个数。
(A5)varLength,该字段值代表numArgs字段占据的内存字节大小。
(A6)procedure,该字段代表要调用的远程方法名称。
(A7)args,该字段代表调用端所提供的所有调用参数,或者,该字段代表被调用端返回的所有结果。
步骤S102:获取用于调用远程过程的调用参数。
在具体实施过程中,调用端在进行远程调用时,会用到多个调用参数,此处需要获取全部的调用参数。
步骤S103:对调用参数进行序列化,获得序列化调用参数。
作为一种可选的实施方式,步骤S103,包括:
确定调用参数的数据类型;将调用参数的数据类型转化为IRpcArgument(RemoteProcedure CallsArgument,远程过程调用参数)类型,获得序列化调用参数。
其中,所述调用参数的数据类型,包括:整数类型、或字节类型、或浮点类型、或ASCII(American Standard Code for Information Interchange,美国信息交换标准码)字符串类型、或Unicode(统一的字符编码标准)字符串类型、或数组类型、或对象类型。
在具体实施过程中,IRpcArgument类型包含的字段有:m_intValue、m_i8Value、m_singleValue、m_charBuffer、m_wcharBuffer、m_elementNum、m_type。
作为一种可选的实施方式,所述将调用参数的数据类型转化为远程过程调用参数IRpcArgument类型,包括以下情况(即:下文中的B1~B7中的情况):
(B1)整数类型序列化:就是将类型为int类型的调用参数转化为IRpcArgument类型。
具体来讲,在调用参数的数据类型为整数类型时,可以将调用参数的整数值设置到序列化调用参数的m_intValue字段中,并将序列化调用参数的m_type字段设置为RAT_I32类型。
(B2)字节类型序列化:就是将类型为char的调用参数转化为IRpcArgument类型。
具体来讲,在调用参数的数据类型为字节类型时,可以将调用参数的字节数值设置到序列化调用参数的m_i8Value字段中,并将序列化调用参数的m_type字段设置为RAT_I8类型。
(B3)浮点类型序列化:就是将类型为float的调用参数转化为IRpcArgument类型。
具体来讲,在调用参数的数据类型为浮点类型时,可以将调用参数的浮点值设置到序列化调用参数的m_singleValue字段中,并将序列化调用参数的m_type字段设置为RAT_SINGLE类型。
(B4)ASCII字符串类型序列化:就是将类型为char*的字符串的调用参数转化为IRpcArgument类型。
具体来讲,在调用参数的数据类型为ASCII字符串类型时,可以将调用参数的ASCII字符串复制到序列化调用参数的m_charBuffer字段中,并将序列化调用参数的m_type字段设置为RAT_STRING类型。
(B5)Unicode字符串类型序列化:就是将类型为wchar_t*的字符串的调用参数转化为IRpcArgument类型。
具体来讲,在调用参数的数据类型为Unicode字符串类型时,可以将调用参数的Unicode字符串复制到序列化调用参数的m_wcharBuffer字段中,并将序列化调用参数的m_type字段设置为RAT_WSTRING类型。
(B6)数组类型序列化:就是将数组类型的调用参数转化为IRpcArgument类型。
具体来讲,在调用参数的数据类型为数组类型时,可以将调用参数的数组元素设置到序列化调用参数的m_elementNum字段中,并将序列化调用参数的m_type字段设置为RAT_BLOB类型。
(B7)对象类型序列化:就是将结构体类型的调用参数转化为IRpcArgument类型。
具体来讲,在调用参数的数据类型为对象类型时,可以将调用参数的结构体元素设置到序列化调用参数的m_elementNum字段中,并将序列化调用参数的m_type字段设置为RAT_OBJECT类型。
步骤S104:将序列化调用参数写入预设字段中,获得调用信息。
在具体实施过程中,步骤S104的作用就是将列化调用参数中的所有IRpcArgument值序列化到RpcMessage的args字段中,可以通过调用BuildRpcMessageFrom函数来实现将所有的IRpcArgument参数序列化为一个RpcMessage结构,从而进行网络传输。
作为一种可选的实施方式,步骤S104,包括:基于调用参数的数据类型,将序列化调用参数写入预设字段中。
在具体实施过程中,在执行步骤S104时,可以分为两种情况,一种是当调用参数的数据类型为非对象类型的情况,另一种是当调用参数的数据类型为对象类型的情况。
作为一种可选的实施方式,在调用参数的数据类型为非对象类型时,所述基于调用参数的数据类型,将序列化调用参数写入预设字段中,包括(下文中的C1和C2两种情况):
(C1)若调用参数的数据类型为非数组类型,则在预设字段中依次加入第一字节和第二字节,第一字节用于保存序列化调用参数的m_type字段中的信息,第二字节用于保存调用参数的参数值。
举例来讲,如果一调用参数是int类型,则在序列化调用参数的args字段中,第1个字节(即:第一字节)值是RAT_I32,后面的4个字节(即:第二字节)值是该调用参数的值。
(C2)若调用参数的数据类型为数组类型,则在预设字段中依次加入第一字节、第三字节和第二字节,第一字节用于保存序列化调用参数的m_type字段中的信息,第三字节用于调用参数中的数组元素的个数,第二字节用于保存调用参数的参数值。
举例来讲,如果该调用参数是数组类型,那么,在序列化调用参数的args字段中,第1个字节(即:第一字节)值是RAT_BLOB,后面的4个字节(即:第三字节)是该数组的元素个数大小,然后紧接着的字节(即:第二字节)是该数组的值。例如,一个有10个元素的字节数组,分别为“1、2、3、4、5、6、7、8、9、10”,则序列化调用参数的内存值为“8 10 0 0 0 1 2 3 45 6 7 8 9 10”,其中,第1个“8”代表该值代表一个数组类型,后面的“10 0 0 0”是一个4字节的整型值,其中“10”表示该数组的元素个数,再后面的所有字节(即:“1 2 3 4 5 6 7 89 10”)的内容就是该数组的值。
作为一种可选的实施方式,在调用参数的数据类型为对象类型时,所述基于调用参数的数据类型,将序列化调用参数写入预设字段中,包括(即:下文中的D):
(D)如果该参数类型是对象类型,那么,在序列化调用参数的args字段中,第1个字节仍然是该序列化调用参数的m_type字段中的信息,后面的4个字节是该结构的元素个数,然后,针对该对象中的每一个元素,如果该元素是非数组类型,则执行上述步骤C1,如果该元素是数组类型,则执行上述步骤C2,如果该元素又是一个对象类型,则又进行递归执行本步骤D,依次执行下去。
在基于本方法获得调用信息后,即完成了对调用参数的封装,调用端即可通过网路将该调用信息发送给远程过程的被调用端,被调用端在接收到该调用信息后,需要对该调用信息解封装,就是对其中的序列化调用参数进行反序列化,从而获取要执行的远程方法名、以及相关的调用参数。
举例来讲,被调用端对调用信息的解封装过程,如下:
被调用端可以读取调用信息的args字段中的第1个字节(即:第一字节),用于判定该序列化调用参数是对象类型还是非对象类型,当该字节不等于RAT_OBJECT值时,代表该序列化调用参数是一个非对象类型,则进入下面的步骤D1~D6进行反序列化解码,当该值等于RAT_OBJECT值时,代表该序列化调用参数是一个对象类型,则进入下面的步骤E进行反序列化解码。
(D1)整数类型:当序列化调用参数中的m_type字段值为RAT_I32时,则代表该序列化调用参数是一个整数类型,则读取args字段中的第二字节(例如:第1个字节后面的4个字节)的内容,从而获得该调用参数的值。
(D2)字节类型:当序列化调用参数中的m_type字段值为RAT_I8时,代表该序列化调用参数是一个字节类型,则读取args字段中的第二字节(例如:第1字节后面的1个字节)的内容,从而获得该调用参数的值。
(D3)浮点类型:当序列化调用参数中的m_type字段值为RAT_SINGLE时,代表该列化调用参数是一个浮点类型,则读取args字段中的第二字节(例如:第1个字节后面的4个字节)内容,从而获得该调用参数的值。
(D4)ASCII字符串类型:当序列化调用参数中的m_type字段值为RAT_STRING时,代表该列化调用参数是一个ASCII字符串,则读取args字段中的内容,直到读到0为止,从而获得该ASCII字符串的内容。
(D5)Unicode字符串类型:当序列化调用参数中的m_type字段值为RAT_WSTRING时,代表该列化调用参数是一个Unicode字符串,则读取args字段中的内容,直到读到0为止,从而获得该Unicode字符串的内容。
(D6)数组类型:当序列化调用参数中的m_type字段值为RAT_BLOB时,代表列化调用该参数是一个数组类型,则读取args字段中的第二字节(即:例如:第1个字节后的4个字节)的内容,获取该数组元素的个数n,然后读取这n个字节的内容,从而获得该数组的所有元素值。
(E)对象类型:当序列化调用参数中的m_type字段值为RAT_OBJECT时,则读取args字段中第二字节(例如:第1个字节后面的4个字节)的内容,获取该对象类型的内部n个元素,然后,对这n个元素,依次递归的执行上述步骤D1~D6中的过程,从而对每个序列化调用参数进行反序列化,获得其中的调用参数。
通过本方法,实现了在远程方法调用过程中的消息封装以及解封装,由于本方法是基于二进制的格式进行的,所以在网络传输过程中,所需要的字节数较小,具有更高的传输效率。
上述本申请实施例中的技术方案,至少具有如下的技术效果或优点:
在本申请实施例中,公开了一种在远程过程调用中的信息封装方法,包括:在调用端进行远程过程调用时,确定用于调用所述远程过程的调用信息的数据结构,所述数据结构中包含预设字段;获取用于调用所述远程过程的调用参数;对所述调用参数进行序列化,获得序列化调用参数;将所述序列化调用参数写入所述预设字段中,获得所述调用信息。在进行远程过程调用时,采用本方法获得调用信息,再将调用信息通过网络发送给远程过程的被调用端,可以大大提高远程过程调用时的信息传输效率,从而解决了现有技术中在进行远程过程调用时,存在信息传输效率低的技术问题。
实施例二
基于同一发明构思,如图2所示,本实施例提供了一种在远程过程调用中的信息封装装置200,包括:
确定单元201,用于在调用端进行远程过程调用时,确定用于调用所述远程过程的调用信息的数据结构,所述数据结构中包含预设字段;
获取单元202,用于获取用于调用所述远程过程的调用参数;
序列化单元203,用于对所述调用参数进行序列化,获得序列化调用参数;
写入单元204,用于将所述序列化调用参数写入所述预设字段中,获得所述调用信息。
作为一种可选的实施方式,序列化单元203,具体用于:
确定所述调用参数的数据类型;将所述调用参数的数据类型转化为远程过程调用参数IRpcArgument类型,获得所述序列化调用参数。
作为一种可选的实施方式,所述调用参数的数据类型,包括:
整数类型、或字节类型、或浮点类型、或美国信息交换标准码ASCII字符串类型、或统一的字符编码标准Unicode字符串类型、或数组类型、或对象类型。
作为一种可选的实施方式,序列化单元203,具体用于:
在所述调用参数的数据类型为整数类型时,将所述调用参数的整数值设置到所述序列化调用参数的m_intValue字段中,并将所述序列化调用参数的m_type字段设置为RAT_I32类型;
在所述调用参数的数据类型为字节类型时,将所述调用参数的字节数值设置到所述序列化调用参数的m_i8Value字段中,并将所述序列化调用参数的m_type字段设置为RAT_I8类型;
在所述调用参数的数据类型为浮点类型时,将所述调用参数的浮点值设置到所述序列化调用参数的m_singleValue字段中,并将所述序列化调用参数的m_type字段设置为RAT_SINGLE类型;
在所述调用参数的数据类型为ASCII字符串类型时,将所述调用参数的ASCII字符串复制到所述序列化调用参数的m_charBuffer字段中,并将所述序列化调用参数的m_type字段设置为RAT_STRING类型;
在所述调用参数的数据类型为Unicode字符串类型时,将所述调用参数的Unicode字符串复制到所述序列化调用参数的m_wcharBuffer字段中,并将所述序列化调用参数的m_type字段设置为RAT_WSTRING类型;
在所述调用参数的数据类型为数组类型时,将所述调用参数的数组元素设置到所述序列化调用参数的m_elementNum字段中,并将所述序列化调用参数的m_type字段设置为RAT_BLOB类型;
在所述调用参数的数据类型为对象类型时,将所述调用参数的结构体元素设置到所述序列化调用参数的m_elementNum字段中,并将所述序列化调用参数的m_type字段设置为RAT_OBJECT类型。
作为一种可选的实施方式,序列化单元203,具体用于:
基于所述调用参数的数据类型,将所述序列化调用参数写入所述预设字段中。
作为一种可选的实施方式,序列化单元203,具体用于:
在所述调用参数的数据类型为非对象类型时,若所述调用参数的数据类型为非数组类型,则在所述预设字段中依次加入第一字节和第二字节,所述第一字节用于保存所述序列化调用参数的m_type字段中的信息,所述第二字节用于保存所述调用参数的参数值。
作为一种可选的实施方式,序列化单元203,具体用于:
在所述调用参数的数据类型为对象类型时,若所述调用参数的数据类型为非数组类型,则在所述预设字段中依次加入第一字节、第三字节和第二字节,所述第一字节用于保存所述序列化调用参数的m_type字段中的信息,所述第三字节用于所述调用参数中的数组元素的个数,所述第二字节用于保存所述调用参数的参数值。
由于本实施例所介绍的在远程过程调用中的信息封装装置为实施本申请实施例一中在远程过程调用中的信息封装方法所采用的装置,故而基于本申请实施例一中所介绍的在远程过程调用中的信息封装方法,本领域所属技术人员能够了解本实施例的在远程过程调用中的信息封装装置的具体实施方式以及其各种变化形式,所以在此对于该在远程过程调用中的信息封装装置如何实现本申请实施例一中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例一中在远程过程调用中的信息封装的方法所采用的装置,都属于本申请所欲保护的范围。
上述本申请实施例中的技术方案,至少具有如下的技术效果或优点:
在本申请实施例中,公开了一种在远程过程调用中的信息封装装置,包括:确定单元,用于在调用端进行远程过程调用时,确定用于调用所述远程过程的调用信息的数据结构,所述数据结构中包含预设字段;获取单元,用于获取用于调用所述远程过程的调用参数;序列化单元,用于对所述调用参数进行序列化,获得序列化调用参数;写入单元,用于将所述序列化调用参数写入所述预设字段中,获得所述调用信息。在进行远程过程调用时,采用本方法获得调用信息,再将调用信息通过网络发送给远程过程的被调用端,可以大大提高远程过程调用时的信息传输效率,从而解决了现有技术中在进行远程过程调用时,存在信息传输效率低的技术问题。
实施例三
基于同一发明构思,如图3所示,本实施例提供了一种以同步方式进行远程过程调用的装置300,包括存储器310、处理器320及存储在存储器310上并可在处理器320上运行的计算机程序311,处理器320执行所述计算机程序311时实现以下步骤:
在调用端进行远程过程调用时,确定用于调用远程过程的调用信息的数据结构,数据结构中包含预设字段;获取用于调用远程过程的调用参数;对调用参数进行序列化,获得序列化调用参数;将序列化调用参数写入预设字段中,获得调用信息。
在具体实施过程中,处理器320执行计算机程序311时,可以实现实施例一种的任一实施方式,参考实施例一,此处不再赘述。
实施例四
基于同一发明构思,如图4所示,本实施例提供了一种计算机可读存储介质400,其上存储有计算机程序411,该计算机程序411被处理器执行时实现以下步骤:
在调用端进行远程过程调用时,确定用于调用远程过程的调用信息的数据结构,数据结构中包含预设字段;获取用于调用远程过程的调用参数;对调用参数进行序列化,获得序列化调用参数;将序列化调用参数写入预设字段中,获得调用信息。
在具体实施过程中,该计算机程序411被处理器执行时,可以实现实施例一种的任一实施方式,参考实施例一,此处不再赘述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (4)

1.一种在远程过程调用中的信息封装方法,其特征在于,包括:
在调用端进行远程过程调用时,确定用于调用所述远程过程的调用信息的数据结构,所述数据结构中包含预设字段,所述预设字段具体为args字段,所述args字段代表所述调用端所提供的所有调用参数;
获取用于调用所述远程过程的调用参数;
对所述调用参数进行序列化,获得序列化调用参数,所述调用参数的数据类型,包括:整数类型、或字节类型、或浮点类型、或美国信息交换标准码ASCII字符串类型、或统一的字符编码标准Unicode字符串类型、或数组类型、或对象类型;
所述对所述调用参数进行序列化,获得序列化调用参数,包括:
确定所述调用参数的数据类型;
将所述调用参数的数据类型转化为远程过程调用参数IRpcArgument类型,获得所述序列化调用参数,包括:
在所述调用参数的数据类型为整数类型时,将所述调用参数的整数值设置到所述序列化调用参数的m_intValue字段中,并将所述序列化调用参数的m_type字段设置为RAT_I32类型;
在所述调用参数的数据类型为字节类型时,将所述调用参数的字节数值设置到所述序列化调用参数的m_i8Value字段中,并将所述序列化调用参数的m_type字段设置为RAT_I8类型;
在所述调用参数的数据类型为浮点类型时,将所述调用参数的浮点值设置到所述序列化调用参数的m_singleValue字段中,并将所述序列化调用参数的m_type字段设置为RAT_SINGLE类型;
在所述调用参数的数据类型为ASCII字符串类型时,将所述调用参数的ASCII字符串复制到所述序列化调用参数的m_charBuffer字段中,并将所述序列化调用参数的m_type字段设置为RAT_STRING类型;
在所述调用参数的数据类型为Unicode字符串类型时,将所述调用参数的Unicode字符串复制到所述序列化调用参数的m_wcharBuffer字段中,并将所述序列化调用参数的m_type字段设置为RAT_WSTRING类型;
在所述调用参数的数据类型为数组类型时,将所述调用参数的数组元素设置到所述序列化调用参数的m_elementNum字段中,并将所述序列化调用参数的m_type字段设置为RAT_BLOB类型;
在所述调用参数的数据类型为对象类型时,将所述调用参数的结构体元素设置到所述序列化调用参数的m_elementNum字段中,并将所述序列化调用参数的m_type字段设置为RAT_OBJECT类型;
基于所述调用参数的数据类型,将所述序列化调用参数写入所述预设字段中,获得所述调用信息,包括:
在所述调用参数的数据类型为非对象类型时,所述基于所述调用参数的数据类型,将所述序列化调用参数写入所述预设字段中,包括:
若所述调用参数的数据类型为非数组类型,则在所述预设字段中依次加入第一字节和第二字节,所述第一字节用于保存所述序列化调用参数的m_type字段中的信息,所述第二字节用于保存所述调用参数的参数值;
若所述调用参数的数据类型为数组类型,则在所述预设字段中依次加入第一字节、第三字节和第二字节,所述第一字节用于保存所述序列化调用参数的m_type字段中的信息,所述第三字节用于所述调用参数中的数组元素的个数,所述第二字节用于保存所述调用参数的参数值。
2.一种在远程过程调用中的信息封装装置,其特征在于,包括:
确定单元,用于在调用端进行远程过程调用时,确定用于调用所述远程过程的调用信息的数据结构,所述数据结构中包含预设字段,所述预设字段具体为args字段,所述args字段代表所述调用端所提供的所有调用参数;
获取单元,用于获取用于调用所述远程过程的调用参数;
序列化单元,用于对所述调用参数进行序列化,获得序列化调用参数,所述调用参数的数据类型,包括:整数类型、或字节类型、或浮点类型、或美国信息交换标准码ASCII字符串类型、或统一的字符编码标准Unicode字符串类型、或数组类型、或对象类型;
所述序列化单元,具体用于:确定所述调用参数的数据类型;将所述调用参数的数据类型转化为远程过程调用参数IRpcArgument类型,获得所述序列化调用参数,包括:
在所述调用参数的数据类型为整数类型时,将所述调用参数的整数值设置到所述序列化调用参数的m_intValue字段中,并将所述序列化调用参数的m_type字段设置为RAT_I32类型;
在所述调用参数的数据类型为字节类型时,将所述调用参数的字节数值设置到所述序列化调用参数的m_i8Value字段中,并将所述序列化调用参数的m_type字段设置为RAT_I8类型;
在所述调用参数的数据类型为浮点类型时,将所述调用参数的浮点值设置到所述序列化调用参数的m_singleValue字段中,并将所述序列化调用参数的m_type字段设置为RAT_SINGLE类型;
在所述调用参数的数据类型为ASCII字符串类型时,将所述调用参数的ASCII字符串复制到所述序列化调用参数的m_charBuffer字段中,并将所述序列化调用参数的m_type字段设置为RAT_STRING类型;
在所述调用参数的数据类型为Unicode字符串类型时,将所述调用参数的Unicode字符串复制到所述序列化调用参数的m_wcharBuffer字段中,并将所述序列化调用参数的m_type字段设置为RAT_WSTRING类型;
在所述调用参数的数据类型为数组类型时,将所述调用参数的数组元素设置到所述序列化调用参数的m_elementNum字段中,并将所述序列化调用参数的m_type字段设置为RAT_BLOB类型;
在所述调用参数的数据类型为对象类型时,将所述调用参数的结构体元素设置到所述序列化调用参数的m_elementNum字段中,并将所述序列化调用参数的m_type字段设置为RAT_OBJECT类型;
写入单元,用于基于所述调用参数的数据类型,将所述序列化调用参数写入所述预设字段中,获得所述调用信息;
所述写入单元,用于在所述调用参数的数据类型为非对象类型时,所述基于所述调用参数的数据类型,将所述序列化调用参数写入所述预设字段中;
所述写入单元,用于在所述调用参数的数据类型为非对象类型时,若所述调用参数的数据类型为非数组类型,则在所述预设字段中依次加入第一字节和第二字节,所述第一字节用于保存所述序列化调用参数的m_type字段中的信息,所述第二字节用于保存所述调用参数的参数值;
所述写入单元,用于在所述调用参数的数据类型为非对象类型时,若所述调用参数的数据类型为数组类型,则在所述预设字段中依次加入第一字节、第三字节和第二字节,所述第一字节用于保存所述序列化调用参数的m_type字段中的信息,所述第三字节用于所述调用参数中的数组元素的个数,所述第二字节用于保存所述调用参数的参数值。
3.一种在远程过程调用中的信息封装装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现以下步骤:
在调用端进行远程过程调用时,确定用于调用所述远程过程的调用信息的数据结构,所述数据结构中包含预设字段,所述预设字段具体为args字段,所述args字段代表所述调用端所提供的所有调用参数;获取用于调用所述远程过程的调用参数;对所述调用参数进行序列化,获得序列化调用参数,所述调用参数的数据类型,包括:整数类型、或字节类型、或浮点类型、或美国信息交换标准码ASCII字符串类型、或统一的字符编码标准Unicode字符串类型、或数组类型、或对象类型;
所述对所述调用参数进行序列化,获得序列化调用参数,包括:
确定所述调用参数的数据类型;
将所述调用参数的数据类型转化为远程过程调用参数IRpcArgument类型,获得所述序列化调用参数,包括:
在所述调用参数的数据类型为整数类型时,将所述调用参数的整数值设置到所述序列化调用参数的m_intValue字段中,并将所述序列化调用参数的m_type字段设置为RAT_I32类型;
在所述调用参数的数据类型为字节类型时,将所述调用参数的字节数值设置到所述序列化调用参数的m_i8Value字段中,并将所述序列化调用参数的m_type字段设置为RAT_I8类型;
在所述调用参数的数据类型为浮点类型时,将所述调用参数的浮点值设置到所述序列化调用参数的m_singleValue字段中,并将所述序列化调用参数的m_type字段设置为RAT_SINGLE类型;
在所述调用参数的数据类型为ASCII字符串类型时,将所述调用参数的ASCII字符串复制到所述序列化调用参数的m_charBuffer字段中,并将所述序列化调用参数的m_type字段设置为RAT_STRING类型;
在所述调用参数的数据类型为Unicode字符串类型时,将所述调用参数的Unicode字符串复制到所述序列化调用参数的m_wcharBuffer字段中,并将所述序列化调用参数的m_type字段设置为RAT_WSTRING类型;
在所述调用参数的数据类型为数组类型时,将所述调用参数的数组元素设置到所述序列化调用参数的m_elementNum字段中,并将所述序列化调用参数的m_type字段设置为RAT_BLOB类型;
在所述调用参数的数据类型为对象类型时,将所述调用参数的结构体元素设置到所述序列化调用参数的m_elementNum字段中,并将所述序列化调用参数的m_type字段设置为RAT_OBJECT类型;
基于所述调用参数的数据类型,将所述序列化调用参数写入所述预设字段中,获得所述调用信息,包括:
在所述调用参数的数据类型为非对象类型时,所述基于所述调用参数的数据类型,将所述序列化调用参数写入所述预设字段中,包括:
若所述调用参数的数据类型为非数组类型,则在所述预设字段中依次加入第一字节和第二字节,所述第一字节用于保存所述序列化调用参数的m_type字段中的信息,所述第二字节用于保存所述调用参数的参数值;
若所述调用参数的数据类型为数组类型,则在所述预设字段中依次加入第一字节、第三字节和第二字节,所述第一字节用于保存所述序列化调用参数的m_type字段中的信息,所述第三字节用于所述调用参数中的数组元素的个数,所述第二字节用于保存所述调用参数的参数值。
4.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现以下步骤:
在调用端进行远程过程调用时,确定用于调用所述远程过程的调用信息的数据结构,所述数据结构中包含预设字段,所述预设字段具体为args字段,所述args字段代表所述调用端所提供的所有调用参数;
获取用于调用所述远程过程的调用参数;
对所述调用参数进行序列化,获得序列化调用参数,所述调用参数的数据类型,包括:整数类型、或字节类型、或浮点类型、或美国信息交换标准码ASCII字符串类型、或统一的字符编码标准Unicode字符串类型、或数组类型、或对象类型;
所述对所述调用参数进行序列化,获得序列化调用参数,包括:
确定所述调用参数的数据类型;
将所述调用参数的数据类型转化为远程过程调用参数IRpcArgument类型,获得所述序列化调用参数,包括:
在所述调用参数的数据类型为整数类型时,将所述调用参数的整数值设置到所述序列化调用参数的m_intValue字段中,并将所述序列化调用参数的m_type字段设置为RAT_I32类型;
在所述调用参数的数据类型为字节类型时,将所述调用参数的字节数值设置到所述序列化调用参数的m_i8Value字段中,并将所述序列化调用参数的m_type字段设置为RAT_I8类型;
在所述调用参数的数据类型为浮点类型时,将所述调用参数的浮点值设置到所述序列化调用参数的m_singleValue字段中,并将所述序列化调用参数的m_type字段设置为RAT_SINGLE类型;
在所述调用参数的数据类型为ASCII字符串类型时,将所述调用参数的ASCII字符串复制到所述序列化调用参数的m_charBuffer字段中,并将所述序列化调用参数的m_type字段设置为RAT_STRING类型;
在所述调用参数的数据类型为Unicode字符串类型时,将所述调用参数的Unicode字符串复制到所述序列化调用参数的m_wcharBuffer字段中,并将所述序列化调用参数的m_type字段设置为RAT_WSTRING类型;
在所述调用参数的数据类型为数组类型时,将所述调用参数的数组元素设置到所述序列化调用参数的m_elementNum字段中,并将所述序列化调用参数的m_type字段设置为RAT_BLOB类型;
在所述调用参数的数据类型为对象类型时,将所述调用参数的结构体元素设置到所述序列化调用参数的m_elementNum字段中,并将所述序列化调用参数的m_type字段设置为RAT_OBJECT类型;
基于所述调用参数的数据类型,将所述序列化调用参数写入所述预设字段中,获得所述调用信息,包括:
在所述调用参数的数据类型为非对象类型时,所述基于所述调用参数的数据类型,将所述序列化调用参数写入所述预设字段中,包括:
若所述调用参数的数据类型为非数组类型,则在所述预设字段中依次加入第一字节和第二字节,所述第一字节用于保存所述序列化调用参数的m_type字段中的信息,所述第二字节用于保存所述调用参数的参数值;
若所述调用参数的数据类型为数组类型,则在所述预设字段中依次加入第一字节、第三字节和第二字节,所述第一字节用于保存所述序列化调用参数的m_type字段中的信息,所述第三字节用于所述调用参数中的数组元素的个数,所述第二字节用于保存所述调用参数的参数值。
CN201710524061.1A 2017-06-30 2017-06-30 一种在远程过程调用中的信息封装方法及装置 Active CN107483399B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710524061.1A CN107483399B (zh) 2017-06-30 2017-06-30 一种在远程过程调用中的信息封装方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710524061.1A CN107483399B (zh) 2017-06-30 2017-06-30 一种在远程过程调用中的信息封装方法及装置

Publications (2)

Publication Number Publication Date
CN107483399A CN107483399A (zh) 2017-12-15
CN107483399B true CN107483399B (zh) 2020-10-16

Family

ID=60596110

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710524061.1A Active CN107483399B (zh) 2017-06-30 2017-06-30 一种在远程过程调用中的信息封装方法及装置

Country Status (1)

Country Link
CN (1) CN107483399B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110659139A (zh) * 2018-06-28 2020-01-07 武汉斗鱼网络科技有限公司 一种远程过程调用方法、计算机设备和存储介质
CN109117209B (zh) * 2018-07-23 2021-10-01 广州多益网络股份有限公司 序列化和反序列化方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2590090A1 (en) * 2011-11-03 2013-05-08 Business Objects Software Ltd. Dynamic interface to read database through remote procedure call
CN104270470A (zh) * 2014-10-24 2015-01-07 杭州高达软件***股份有限公司 一种远程服务调用方法、装置及***
CN106357713A (zh) * 2015-07-16 2017-01-25 北京京东尚科信息技术有限公司 实现远程过程调用的方法和客户端装置以及服务器装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2590090A1 (en) * 2011-11-03 2013-05-08 Business Objects Software Ltd. Dynamic interface to read database through remote procedure call
CN104270470A (zh) * 2014-10-24 2015-01-07 杭州高达软件***股份有限公司 一种远程服务调用方法、装置及***
CN106357713A (zh) * 2015-07-16 2017-01-25 北京京东尚科信息技术有限公司 实现远程过程调用的方法和客户端装置以及服务器装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"你应该知道的RPC原理";zhanlijun;《https://www.cnblogs.com/LBSer/p/4853234.html》;20151003;正文第1页倒数第三段至第4页倒数第2段 *

Also Published As

Publication number Publication date
CN107483399A (zh) 2017-12-15

Similar Documents

Publication Publication Date Title
CN108563517A (zh) ***接口的调用方法及装置
CN108984174A (zh) 跨平台的应用创建方法、装置、服务器和存储介质
CN106598922B (zh) 一种字符串转换方法及***
CN111722885B (zh) 程序运行方法、装置以及电子设备
US11016769B1 (en) Method and apparatus for processing information
CN107483399B (zh) 一种在远程过程调用中的信息封装方法及装置
CN112243033B (zh) 获取内存信息的方法、装置、设备及计算机可读存储介质
CN114117992B (zh) 一种序列化和反序列化方法、装置和电子设备
CN111506368A (zh) 对异步调用转同步调用的方法、装置、设备及存储介质
CN110058904B (zh) 数据转移方法、装置及服务器
CN111414150B (zh) 游戏引擎渲染方法、装置、电子设备及计算机存储介质
CN116521181B (zh) 基于游戏***的脚本数据处理方法、装置、设备及介质
CN116436936B (zh) 一种数据存储***、方法、存储介质及电子设备
CN112925586A (zh) 一种小程序路由方法、装置、计算机设备及存储介质
CN117389647A (zh) 插件生成方法、应用程序开发方法、装置、设备及介质
CN110109718B (zh) 一种应用程序接口调用方法及装置
CN113542217B (zh) 一种服务订阅***
JP2024501727A (ja) マルチアダプタ互換ライブラリファイルモジュール、呼び出し方法、呼び出しシステム及びデバイス
US10375206B1 (en) Entity-component architecture with components having multiple configurations
CN113835904A (zh) 一种远程过程调用控制方法、装置、设备及存储介质
CN115328679A (zh) 异构函数库的自动化集成方法、计算设备及其***
CN112417818B (zh) 文档目录生成方法和装置、存储介质及电子设备
CN110874321B (zh) 测试接口的远程调用方法、调用封装引擎及远程代理引擎
CN117093288B (zh) 基于前后台通信的数据双向映射方法及装置
CN108829502B (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

Effective date of registration: 20240102

Address after: 710000, Room 403, New Era Building, No. 9 Gaoxin Third Road, High tech Zone, Xi'an City, Shaanxi Province

Patentee after: Xi'an Crosstrust Network Technology Co.,Ltd.

Address before: 430000 East Lake Development Zone, Wuhan City, Hubei Province, No. 1 Software Park East Road 4.1 Phase B1 Building 11 Building

Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right