本文作者:传奇大学

Legend客户端微端分析

传奇大学 2020-04-23 79 抢沙发
文章页顶部广告
Legend客户端微端分析摘要: 核心单元PatchUnit就两个类TPatchClientManager 管理类并维护一个m_xObjectListT(PatchClient)负责初始化socket 和 发送资源...

核心单元PatchUnit

就两个类


TPatchClientManager 管理类并维护一个m_xObjectListT(PatchClient)

负责初始化socket 和 发送资源请求

并在ProcOnIdle 执行 ExecSendBuffer ExecRecvBuffer

AssignedWMImages 用于存储服务端发送的wzl清单

/////////////////////////////////////

TPatchClient 实际的数据收发操作

 m_ClientSocket: TClientSocket; 客户端socket

构造函数传递了一个TPatchClientManager对象


此函数处理接收的socket数据

ProcRecvBuffer 处理接收数据分析(pMsgHeader)并通过

AddProcRecvMsg添加到list(m_xProcRecvList) 交由ExecRecvBuffer处理

------------------------------------------

TPatchData 消息包格式

----------------------------------------

//////////////////////////////////////////////////////////////////////////////////

ExecSendBuffer //需要判断是否是第一次链接m_fFirstGetCrc

激活socket 从m_xTempProcSendList取出请求 发送数据请求 

前段分析 实际是把请求的消息添加到m_xProcSendList

后段 从m_xProcSendList取出判断pPatchData.dwDelay 超时就删除请求

取出成功后分配内存 m_ClientSocket.Socket.SendBuf 发送请求

超时的交由end else begin

      m_ClientSocket.Socket.SendBuf(PatchData.tHdr, SizeOf(TMsgHeader)); //可能是重新请求?


-----------------------------------------

ExecRecvBuffer

从m_xProcRecvList取出数据 

成功后 后面分析包 


PM_CRC //crc返回 m_fFirstGetCrc 为真 //首包? 并获取整个资源列表

前段 判断全部为空 清理所有请求的消息列表

获取的列表格式 wzl为单个图片

wzl/wav/map

wzl 文件之间 | 分割其它类似 wzl,crc 逗号分隔

校验通过 

按请求的图片 

m_PatchClientManager.m_xWMImageList.IndexOf(szFileName)

放入m_nSvrWzlFileList(文件名,图片序号)

wav map类似 只不过是整个文件

-------------------------------------------------------

接下来向服务端返回本地校验?后来发现是个半成品。。

PatchData.tHdr.nSocket CRC文件数量

CnCRC32.FileCRC32(ParamStr(0), dwCRC); mir2.exe的crc

-------------------------------------------------------


PM_INDEX

校验通过将打开wzl wzx文件

同时更新本地图片计数 和服务器一致


PM_DATA解析具体数据

////////////////////////////////////////////////////////


SendProcMsg 发送请求包下载数据 map wzl wav直接的请求函数调用这个就行了

首次请求 消息加入m_xTempProcSendList

然后按类型文件名读取crc

通过CRC(pPatchData.tHdr.nSocket)

再次请求具体数据 消息加入m_xProcSendList


///////////////////////////////////////////















文章版权及转载声明

作者:传奇大学本文地址:https://www.444.mba/post/666.html发布于 2020-04-23
文章转载或复制请以超链接形式并注明出处传奇大学

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

分享
您需要 登录账户 后才能发表评论

发表评论

快捷回复:

评论列表 (暂无评论,79人围观)参与讨论

还没有评论,来说两句吧...