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; } } }
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; }