int CNiThread::ExitInstance() { //关闭侦听Socket if(m_pListenSocket!=NULL) { m_pListenSocket->Close(); delete m_pListenSocket; m_pListenSocket = NULL; } //释放客户端信息 POSITION pos = m_mapAddr2ClientInfo.GetStartPosition(); while(pos != NULL) { CString strPeerAddr; ClientSocketInfoType* pClientInfo = NULL; m_mapAddr2ClientInfo.GetNextAssoc(pos,strPeerAddr,(void*&)pClientInfo); SAFE_DELETE(pClientInfo); } m_mapAddr2ClientInfo.RemoveAll(); AfxSocketTerm(); return CWinThread::ExitInstance(); }
WnetMgr::~WnetMgr(void) { if (XPR_IS_TRUE(mSockInit)) { AfxSocketTerm(); } }