一种客户端与服务器端通信内容的解析方法及装置的制造方法

文档序号:9670795阅读:426来源:国知局
一种客户端与服务器端通信内容的解析方法及装置的制造方法
【技术领域】
[0001] 本申请设及互联网技术领域,特别设及一种客户端与服务器端通信内容的解析方 法及装置。
【背景技术】
[0002] 了解网络游戏的客户端与服务器端之间通信内容,是测试人员编写压力测试脚本 的前提条件,也是游戏开发人员调试程序的重要步骤。
[0003] 目前,游戏客户端与服务器端的通信内容W二进制数据流形式进行传输,二进制 数据流无法直接阅读,如果要阅读运些二进制数据流,需要首先将二进制数据流转换成可 W阅读的明文。
[0004] 在游戏开发过程中,开发人员、测试人员如果要了解某个游戏模块的通信内容,需 要首先操作客户端执行一系列操作产生二进制数据流,在运些数据流传输给服务器端途 中,截取所述二进制数据流并解析成符合消息包定义格式的一系列明文信息,所述明文信 息才能供研发人员参考并作为编写脚本和调试代码的重要依据。因此截获并解析客户端与 服务器端二进制通信内容是测试人员和游戏开发人员的一项不可或缺的工作。 阳〇化]现有获取客户端与服务器端通信内容的方法,大多是通过使用编辑器打开源代 码,并设置断点,按照debug调试来获取运行时的消息包内容:即通过visual studio等编 辑器打开源代码,在源代码设置断点,之后客户端执行某一操作,等待客户端将消息传送给 服务器端,触发编辑器中设置的断点后通过编辑器提供的单步调试功能获取某一网络消息 包的运行时内容,该方法的缺点是:
[0006] 准备工作多:每次获取消息包时都需要开启visual studio编辑器、源代码,并在 编辑器中预先设置断点,W及需要使用者具备一定编码调试技能。
[0007] 执行过程繁琐:执行时需要手动触发客户端,然后在编辑器中打开源代码,设置断 点,等待断点被触发,然后使用编辑器提供的调试功能获得某个消息包的内容;
[0008] 结果无法复用:该方法获取的消息包内容仅针对某一消息包某种情况下的属性 值,获取另外测试场景下的消息包内容时需要重复现有测试步骤,无法复用现有测试环节。
[0009] 因此,现有的获取客户端与服务器端通信内容的方法具有如下缺点:执行效率低 下,可靠性低,无法复用。

【发明内容】

[0010] 本申请提供了一种客户端与服务器端通信内容的解析方法及装置,能够高效获取 客户端与服务器之间的通信内容,可靠性强,并且便于复用。
[0011] 本申请实施例提供了一种客户端与服务器端通信内容的解析方法,包括:
[0012] A、定义需要解析的消息包结构,所述消息包结构包括消息包的编号,名称,W及消 息包的二进制消息内容,消息包中包含的每个属性名称、类型,W及属性值与二进制数据流 之间相互转换的方法;
[0013] B、截取并保存客户端与服务器之间的二进制消息包;
[0014] C、将保存的二进制消息包内容按照预定义的消息包结构进行解析,获得字符串。
[0015] 可选地,所述客户端与服务器之间的二进制消息包采用套接字协议或超文本传输 协议传输。
[0016] 可选地,步骤B包括:通过监听客户端和服务器指定通信端口,截取二进制消息 包,截取的二进制消息包Wxml格式保存。
[0017] 可选地,所述服务器为网络游戏服务器。
[0018] 可选地,所述步骤B包括:
[0019] B1、截取客户端与服务器之间的二进制消息包,判断当前截取的二进制消息包中 是否包含预先定义的第一触发字段,若是,保存当前截取的二进制消息包继续执行步骤B2; 否则不保存所述二进制消息包,返回步骤Bl;
[0020] B2、截取客户端与服务器之间的二进制消息包,判断当前截取的二进制消息包中 是否包含预先定义的第二触发字段,若是,不保存当前截取的二进制消息包,并执行步骤C, 否则,保存当前截取的二进制消息包,并返回步骤B2。
[0021] 可选地,所述第一触发字段为游戏角色进入战斗场景的特征字段;
[0022] 所述第二触发字段为游戏角色退出战斗场景的特征字段。
[0023] 本申请实施例还提供了一种客户端与服务器端通信内容的解析装置,包括:
[0024] 定义模块,用于定义需要解析的消息包结构,所述消息包结构包括消息包的编号, 名称,W及消息包的二进制消息内容,消息包中包含的每个属性名称、类型,W及属性值与 二进制数据流之间相互转换的方法;
[00巧]截取模块,用于截取客户端与服务器之间的二进制消息包;
[00%] 分析模块,用于将截取的二进制消息包内容按照预定义的消息包结构进行解析, 获得消息包属性明文字符串。
[0027] 可选地,所述客户端与服务器之间的二进制消息包采用套接字协议或超文本传输 协议传输。
[0028] 可选地,所述截取模块通过监听客户端和服务器指定通信端口,截取二进制消息 包,截取的二进制消息包Wxml格式保存。
[0029] 可选地,所述服务器为网络游戏服务器。
[0030] 可选地,所述截取模块包括:截取单元、判断单元和存储单元;
[0031] 截取单元用于截取客户端与服务器之间的二进制消息包;
[0032] 判断单元,用于判断截取单元所截取的二进制消息包中是否包含预先定义的第一 触发字段,若是,使能存储单元;W及判断截取的二进制消息包中是否包含预先定义的第二 触发字段,若是,去使能存储单元;
[0033] 所述存储单元用于在使能状态下,存储截取单元当前所截取的二进制消息包。
[0034] 可选地,所述第一触发字段为游戏角色进入战斗场景的特征字段;
[0035] 所述第二触发字段为游戏角色退出战斗场景的特征字段。
[0036] 从W上技术方案可W看出,截取客户端与服务器之间的二进制消息包,按照预定 义的消息包结构对所述二进制消息包进行解析,获得字符串,从而获取客户端与服务器之 间的消息包的属性值内容,降低分析难度,提高解析效率,并且可靠性强,便于复用。
【附图说明】
[0037] 图1为本申请实施例提供的客户端与服务器端通信内容的解析方法流程示意图;
[0038]图2为本申请实施例提供的客户端与服务器端通信内容的解析装置结构示意图;
[0039] 图3为本申请的一个实施例中的分析模块203的工作流程示意图。
【具体实施方式】
[0040] 为使本申请技术方案的技术原理、特点W及技术效果更加清楚,W下结合具体实 施例对本申请技术方案进行详细阐述。
[0041] 本申请实施例提供的客户端与服务器端通信内容的解析方法流程如图1所示,包 括如下步骤:
[0042] 步骤101 :定义步骤,定义需要解析的消息包结构,所述消息包结构包括消息包的 编号,名称,W及消息包的二进制消息内容,消息包中包含的每个属性名称、类型,W及属性 值与二进制数据流之间相互转换的方法。
[0043] 步骤102 :截取步骤,截取并保存客户端与服务器之间的二进制消息包。
[0044] 步骤103 :分析步骤,将保存的二进制消息包内容按照预定义的消息包结构进行 解析,获得字符串。
[0045] 该方法可W实现无人值守的自动化分析,但是如果对所有的二进制消息包都进行 截取、保存、分析,则太占用存储空间,也没有必要。可W通过W下方案进一步节省空间。
[0046] 可选地,步骤102所述截取步骤可W设计为根据特定条件开始或停止保存所截取 的二进制消息包。所述步骤102包括:
[0047] 子步骤102-1 :截取客户端与服务器之间的二进制消息包,判断当前截取的二进 制消息包中是否包含预先定义的第一触发字段,若是,保存当前截取的二进制消息包继续 执行子步骤102-2;否则不保存所述二进制消息包,返回子步骤102-1;
[0048] 子步骤102-2:截取客户端与服务器之间的二进制消息包,判断当前截取的二进 制消息包中是否包含预先定义的第二触发字段,若是,不保存当前截取的二进制消息包,并 执行步骤103,否则,保存当前截取的二进制消息包,并返回步骤子步骤102-2。
[0049] 所述特定条件的设置可W有多种,例如游戏角色进入特定副本,进行特定游戏环 节,进行战斗或其他操作等等。多种特定条件可W同时共存。
[0050] 例如,若只针对战斗场景进行分析,则所述第一触发字段为游戏角色进入战斗场 景的特征字段;所述第二触发字段为游戏角色退出战斗场景的特征字段。
[0051] 本申请实施例提供的客户端与服务器端通信内容的解析装置如图2所示,该解析 装置200可W由一台个人电脑实现,包括截取模块201、定义模块202、分析模块203。
[0052] 截取模块201的功能是截取客户端与服务器之间通信的二进制消息包,将截取的 二进制消息包Wxml格式保存,W供后续模块使用。
[0053] 截取的二进制消息包是游戏客户端与服务器端之间的通信内容,一般使用指定协 议进行传输,比如套接字(socket)协议、超文本传输协议化ttp)等等。
[0054] 截取的具体实现方式可W为:通过监听客户端和游戏服务器指定通信端口,获取 二进制数据流,并将所获取的二进制数据流Wxml格式保存。 阳化5] 可选地,所述截取模块包括:截取单元、判断单元和存储单元;
[0056] 截取单元用于截取客户端与服务器之间的二进制消息包;
[0057] 判断单元,用于判断截取单元所截取的二进制消息包中是否包含预先定义的第一 触发字段,若是,使能存储单元;W及判断截取的二进制消息包中是否包含预先定义的第二 触发字段,若是,去使能存储单元;
[0058] 所述存储单元用于在使能状态下,存储截取单元当前所截取的二进制消息包。
[0059] 所述第一触发字段和第二触发字段可W根据实际需要解析的内容进行设置,例 如,若要对战斗场景的消息包进行解析,所述第一触发字
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1