void CMyNetClient::HandleClose()
{
	// ·þÎñÆ÷¶ÏÏß
	CMessage* msg;
	msg = new CMessage(MSG_C2C_LOG_SERVERLOST);
	GetRecvMessages()->PushMessage(msg);
}
Beispiel #2
0
//退出服务端套接字
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);
}