18,356
社区成员
发帖
与我相关
我的任务
分享
void GameLogic::HandleClientMessage( void *_SocketMsg)
{
//exclusiveLockLogic exLock(_mutexLogic);
unsigned int socketIndex;
datapacket::CData recv;
int SocketSize;
SocketMsg *sMsg=(SocketMsg *)_SocketMsg;
socketIndex=sMsg->sessionID;
recv.ParseFromString(sMsg->dataFlow.get());
SocketSize=sMsg->SocketSize;
if (sMsg != NULL)
{
delete sMsg;
sMsg = NULL;
}
}
////////////////////////////////////////////////////////////////////////////
//读取客户端消息
void GameSvr::readHandler(unsigned socketIndex, char* data, size_t size)
{
//互斥锁
exclusiveLockSvr exLock(_mutexSvr);
SocketMsg *sMsg=new SocketMsg();
sMsg->sessionID = socketIndex;
sMsg->SocketSize = size;
boost::shared_ptr<char> buffer((char*) malloc(size));
memcpy(buffer.get(), data, size);
sMsg->dataFlow = buffer;
g_GameLogic.HandleClientMessage((void *)sMsg);
if (sMsg != NULL)
{
//delete sMsg;
sMsg = NULL;
}
}