AD商业广告自由选择
AD商业广告自由选择

Legend客户端微端分析

正文概述 开源人   2024-10-16 15:36:45  

核心单元PatchUnitfSk1234FCOM专注游戏工具及源码例子分享

就两个类fSk1234FCOM专注游戏工具及源码例子分享

 fSk1234FCOM专注游戏工具及源码例子分享

TPatchClientManager 管理类并维护一个m_xObjectListT(PatchClient)fSk1234FCOM专注游戏工具及源码例子分享

负责初始化socket 和 发送资源请求fSk1234FCOM专注游戏工具及源码例子分享

并在ProcOnIdle 执行 ExecSendBuffer ExecRecvBufferfSk1234FCOM专注游戏工具及源码例子分享

AssignedWMImages 用于存储服务端发送的wzl清单fSk1234FCOM专注游戏工具及源码例子分享

/////////////////////////////////////fSk1234FCOM专注游戏工具及源码例子分享

TPatchClient 实际的数据收发操作fSk1234FCOM专注游戏工具及源码例子分享

 m_ClientSocket: TClientSocket; 客户端socketfSk1234FCOM专注游戏工具及源码例子分享

构造函数传递了一个TPatchClientManager对象fSk1234FCOM专注游戏工具及源码例子分享

 fSk1234FCOM专注游戏工具及源码例子分享

此函数处理接收的socket数据fSk1234FCOM专注游戏工具及源码例子分享

ProcRecvBuffer 处理接收数据分析(pMsgHeader)并通过fSk1234FCOM专注游戏工具及源码例子分享

AddProcRecvMsg添加到list(m_xProcRecvList) 交由ExecRecvBuffer处理fSk1234FCOM专注游戏工具及源码例子分享

------------------------------------------fSk1234FCOM专注游戏工具及源码例子分享

TPatchData 消息包格式fSk1234FCOM专注游戏工具及源码例子分享

----------------------------------------fSk1234FCOM专注游戏工具及源码例子分享

//////////////////////////////////////////////////////////////////////////////////fSk1234FCOM专注游戏工具及源码例子分享

ExecSendBuffer //需要判断是否是第一次链接m_fFirstGetCrcfSk1234FCOM专注游戏工具及源码例子分享

激活socket 从m_xTempProcSendList取出请求 发送数据请求 fSk1234FCOM专注游戏工具及源码例子分享

前段分析 实际是把请求的消息添加到m_xProcSendListfSk1234FCOM专注游戏工具及源码例子分享

后段 从m_xProcSendList取出判断pPatchData.dwDelay 超时就删除请求fSk1234FCOM专注游戏工具及源码例子分享

取出成功后分配内存 m_ClientSocket.Socket.SendBuf 发送请求fSk1234FCOM专注游戏工具及源码例子分享

超时的交由end else beginfSk1234FCOM专注游戏工具及源码例子分享

      m_ClientSocket.Socket.SendBuf(PatchData.tHdr, SizeOf(TMsgHeader)); //可能是重新请求?fSk1234FCOM专注游戏工具及源码例子分享

 fSk1234FCOM专注游戏工具及源码例子分享

-----------------------------------------fSk1234FCOM专注游戏工具及源码例子分享

ExecRecvBufferfSk1234FCOM专注游戏工具及源码例子分享

从m_xProcRecvList取出数据 fSk1234FCOM专注游戏工具及源码例子分享

成功后 后面分析包 fSk1234FCOM专注游戏工具及源码例子分享

 fSk1234FCOM专注游戏工具及源码例子分享

PM_CRC //crc返回 m_fFirstGetCrc 为真 //首包? 并获取整个资源列表fSk1234FCOM专注游戏工具及源码例子分享

前段 判断全部为空 清理所有请求的消息列表fSk1234FCOM专注游戏工具及源码例子分享

获取的列表格式 wzl为单个图片fSk1234FCOM专注游戏工具及源码例子分享

wzl/wav/mapfSk1234FCOM专注游戏工具及源码例子分享

wzl 文件之间 | 分割其它类似 wzl,crc 逗号分隔fSk1234FCOM专注游戏工具及源码例子分享

校验通过 fSk1234FCOM专注游戏工具及源码例子分享

按请求的图片 fSk1234FCOM专注游戏工具及源码例子分享

m_PatchClientManager.m_xWMImageList.IndexOf(szFileName)fSk1234FCOM专注游戏工具及源码例子分享

放入m_nSvrWzlFileList(文件名,图片序号)fSk1234FCOM专注游戏工具及源码例子分享

wav map类似 只不过是整个文件fSk1234FCOM专注游戏工具及源码例子分享

-------------------------------------------------------fSk1234FCOM专注游戏工具及源码例子分享

接下来向服务端返回本地校验?后来发现是个半成品。。fSk1234FCOM专注游戏工具及源码例子分享

PatchData.tHdr.nSocket CRC文件数量fSk1234FCOM专注游戏工具及源码例子分享

CnCRC32.FileCRC32(ParamStr(0), dwCRC); mir2.exe的crcfSk1234FCOM专注游戏工具及源码例子分享

-------------------------------------------------------fSk1234FCOM专注游戏工具及源码例子分享

 fSk1234FCOM专注游戏工具及源码例子分享

PM_INDEXfSk1234FCOM专注游戏工具及源码例子分享

校验通过将打开wzl wzx文件fSk1234FCOM专注游戏工具及源码例子分享

同时更新本地图片计数 和服务器一致fSk1234FCOM专注游戏工具及源码例子分享

 fSk1234FCOM专注游戏工具及源码例子分享

PM_DATA解析具体数据fSk1234FCOM专注游戏工具及源码例子分享

////////////////////////////////////////////////////////fSk1234FCOM专注游戏工具及源码例子分享

 fSk1234FCOM专注游戏工具及源码例子分享

SendProcMsg 发送请求包下载数据 map wzl wav直接的请求函数调用这个就行了fSk1234FCOM专注游戏工具及源码例子分享

首次请求 消息加入m_xTempProcSendListfSk1234FCOM专注游戏工具及源码例子分享

然后按类型文件名读取crcfSk1234FCOM专注游戏工具及源码例子分享

通过CRC(pPatchData.tHdr.nSocket)fSk1234FCOM专注游戏工具及源码例子分享

再次请求具体数据 消息加入m_xProcSendListfSk1234FCOM专注游戏工具及源码例子分享

 fSk1234FCOM专注游戏工具及源码例子分享

///////////////////////////////////////////fSk1234FCOM专注游戏工具及源码例子分享

 fSk1234FCOM专注游戏工具及源码例子分享



声明:本文系互联网搜索而收集整理,不以盈利性为目的,文字、图文资料源于互联网且共享于互联网。
如有侵权,请联系 yao4fvip#qq.com (#改@) 删除。