Ejemplo n.º 1
0
void OnNetMsg( NetSocket& rSocket,NetMsgHead* pMsg ,int32 nSize )
{

	ClientPlayer* gPlayer = ClientPlayerMgr::Instance()->GetClientPlayer(rSocket);

	// 解密处理 
	static char msgBuffer[65536];
	memcpy(&msgBuffer[0], pMsg,nSize);

	Encrypt::XorCode(nSize,gPlayer->GetEncryptKey(),msgBuffer,nSize);
	pMsg = ( NetMsgHead*)&msgBuffer[0];

	NetMsgHandlerMapIter iter = gMsgHeandlerMap.find( pMsg->nType );
	if ( iter == gMsgHeandlerMap.end() )
	{
		printf("Not find Pro:%d\n", pMsg->nType);
		ASSERT(0);
		return ;
	}

	NetMsgHandler pHandler = iter->second;
	printf("OnNetMsg %d   %s \n", pMsg->nType,pHandler.strBrief.c_str());
	ClientPlayer* pClientPlayer = ClientPlayerMgr::Instance()->GetClientPlayer(rSocket);
	(pHandler.pFun)(pClientPlayer,pMsg ,nSize);
}
Ejemplo n.º 2
0
void OnNetMsg( NetSocket& rSocket,NetMsgHead* pMsg ,int32 nSize )
{

	ClientPlayer* gPlayer = ClientPlayerMgr::Instance()->GetClientPlayer(rSocket);

	// 解密处理
	static char msgBuffer[65536];
	memcpy(&msgBuffer[0], pMsg,nSize);

	Encrypt::XorCode(nSize,gPlayer->GetEncryptKey(),msgBuffer,nSize);
	pMsg = ( NetMsgHead*)&msgBuffer[0];

	NetMsgHandlerMapIter iter = gMsgHeandlerMap.find( pMsg->nType );
	if ( iter == gMsgHeandlerMap.end() )
	{
		FLOG_INFO("Not find Pro:%d", pMsg->nType);
		ASSERT(0);
	}
	else
	{
		ClientPlayer* pClientPlayer = ClientPlayerMgr::Instance()->GetClientPlayer(rSocket);
		(iter->second.pFun)(pClientPlayer,pMsg ,nSize);
		FLOG_INFO("OnNetMsg %d", pMsg->nType);
	}
}