Ejemplo n.º 1
0
void ServerConnectMgr::Update(int32 nSrvTime)
{
	// 检查要断开的NetClient
	DisconnectServerIDVectorType::iterator itServerID = m_vecNetClient.begin();
	DisconnectServerIDVectorType::iterator itEndServerID = m_vecNetClient.end();
	for (;itServerID != itEndServerID;++itServerID)
	{
		uint32 nServerID = *itServerID;
		for(NetClientInfoVecterType::iterator it = m_vecNetClientInfo.begin();it != m_vecNetClientInfo.end();)
		{
			if((*it)->nServerID == nServerID)
			{
				delete (*it)->pNetClient;
				(*it)->pNetClient = NULL;
				it = m_vecNetClientInfo.erase(it);
			}else
			{
				++it;
			}
		}
	}
	m_vecNetClient.clear();

	NetClientInfoVecterType::iterator it = m_vecNetClientInfo.begin();
	NetClientInfoVecterType::iterator itEnd = m_vecNetClientInfo.end();
	for(; it != itEnd; ++it)
	{
		NetClient* pNetClient = (*it)->pNetClient;
		if(pNetClient)
		{
			pNetClient->Update(nSrvTime);//1
		}
	}

}