Пример #1
0
void Transport::CheckTimeOutClients()
{
	activities_t::iterator it = m_activities.begin();
	timer_t now = Time::GetMsTime();

	while(it != m_activities.end())
	{
		struct Activity* activity = it->second;

		if((now - activity->m_lastRecv ) > m_timeoutPeer && (activity->m_creation + m_timeoutPeer) < now)
		{
			DeletePeer(activity->m_peer);

			if(m_observer)
			{
				m_observer->OnPeerRemoved(activity->m_peer);
			}

			delete activity;
			it = m_activities.erase(it);
		}
		else
		{
			++it;
		}
	}
}
Пример #2
0
BOOL CUDPClient::SetPeerID(unsigned short usPeerID)
{
	if( usPeerID < PEERID_CLIENT )	return FALSE;

	m_usPeerID = usPeerID;
	m_pReceiver->SetPeerID(usPeerID);
	

	sockaddr_in svrAddr;
	memset(&svrAddr, 0, sizeof(svrAddr));

	svrAddr.sin_family = AF_INET;
	svrAddr.sin_port = ::htons(m_usServerPort);
	svrAddr.sin_addr.s_addr = ::inet_addr(m_szServerIP);

	DeletePeer( PEERID_SERVER );
	InsertPeer( PEERID_SERVER, svrAddr );

	return TRUE;
}