void CMyNetClient::HandleClose() { // ·þÎñÆ÷¶ÏÏß CMessage* msg; msg = new CMessage(MSG_C2C_LOG_SERVERLOST); GetRecvMessages()->PushMessage(msg); }
//退出服务端套接字 void CServer::Exit() { ExitWorkerThread(); //如果有客户端模式,删除分配列表 if(m_bMode&0x1) { } itSockOP itSock = m_FreeSocketOpers.begin(); for(; itSock != m_FreeSocketOpers.end(); itSock++) { SAFE_DELETE((*itSock)); } DeleteCriticalSection(&m_CSSockOper); DeleteCriticalSection(&m_CSMsgStat); itIOOper itIo = m_FreeListIOOpers.begin(); for(; itIo != m_FreeListIOOpers.end(); itIo++) { SAFE_DELETE((*itIo)); } DeleteCriticalSection(&m_CSIOOper); //释放Serveclient变量 ReleaseClients(); //释放消息队列里的消息 CBaseMessage* pMsg = NULL; while(pMsg = GetRecvMessages()->PopMessage()) { if(pMsg->RemoveRefCount() == 0) CBaseMessage::FreeMsg(pMsg); } }
void CMyNetServer_Client::OnMapStrError(const char* strMap) { CMessage* msg = new CMessage(MSG_L2L_LOG_CLIENTCLOSE); msg->Add((char*)strMap); GetRecvMessages()->PushMessage(msg); }