网狐架构之客户端大厅

GamePlaza.exe
启动过程分析:

1:登录
CDlgLogon::OnOK()
CMissionLogon::PerformLogonMission
pMissionManager->AvtiveMissionItem
m_MissionSocket.PerformConnect
m_TCPSocketModule->Connect(m_dwCurrentServer,m_wCurrentPort(8300))//使用SOCKET技术连接上登录服务器

然后在下面函数中得到连接响应回复
LRESULT CTCPSocket::OnSocketNotify(WPARAM wParam, LPARAM lParam)
CTCPSocket::OnSocketNotifyConnect
//进入验证用户登录信息
ShowStatusWindow(TEXT(“正在验证用户登录信息”));
GetMissionManager()->SendData(MDM_GP_LOGON,wSubCmdID(SUB_GP_LOGON_ACCOUNTS
),cbBuffer,wPacketSize);
CTCPSocket::SendData
加密数据
发送数据
send(m_hSocket,(char *)pBuffer+wSended,wSendSize-wSended,0);

然后在下面函数中得到登录响应回复
LRESULT CTCPSocket::OnSocketNotify(WPARAM wParam, LPARAM lParam)
CTCPSocket::OnSocketNotifyRead(WPARAM wParam, LPARAM lParam)
while (m_wRecvSize>=sizeof(TCP_Head))
中循环获得的消息内容
m_pITCPSocketSink->OnEventTCPSocketRead(m_wSocketID,Command,pDataBuffer,wDataSize);
第一次循环:进入获取游戏列表
CMissionSocket::OnEventTCPSocketRead
CMissionManager::OnEventMissionRead
CMissionLogon::OnEventMissionRead
case SUB_GP_LOGON_SUCCESS: //
OnSocketSubLogonSuccess(pData,wDataSize);//进入获取游戏列表
ShowStatusWindow(TEXT("正在获取游戏列表));
第二次循环:解析并填充种类信息
case SUB_GP_LIST_TYPE:”
第三次循环:解析并填充类型信息
case SUB_GP_LIST_KIND:
第四次循环:解析并填充房间信息
注意:由此将游戏服务器的房间IP 端口填充,用于玩家点击大厅游戏列表对应游戏时连接对应的游戏服务器。(此消息是登录服务器回应,在大厅处于验证用户登录信息状态下,登录服务器的消息的
CAttemperEngineSink::OnDBPCLogonSuccess(DWORD dwContextID, VOID * pData, WORD wDataSize)
SendGameServerInfo(dwContextID,INVALID_WORD);
函数实现中)
case SUB_GP_LIST_SERVER:
如房间ip地址 端口 房间名称
第五次循环:处理列表信息完成事件
case SUB_GP_LIST_FINISH:
第六次循环:登录完成信息
case SUB_GP_LOGON_FINISH:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值