bool STNetEngine::Listen(int port) { pair<map<int,SOCKET>::iterator,bool> ret = m_serverPorts.insert(map<int,SOCKET>::value_type(port,INVALID_SOCKET)); map<int,SOCKET>::iterator it = ret.first; if ( !ret.second && INVALID_SOCKET != it->second ) return true; if ( m_stop ) return true; it->second = ListenPort(port); if ( INVALID_SOCKET == it->second ) return false; return true; }
bool STNetEngine::ListenAll() { bool ret = true; map<int,SOCKET>::iterator it = m_serverPorts.begin(); char strPort[256]; string strFaild; for ( ; it != m_serverPorts.end(); it++ ) { if ( INVALID_SOCKET != it->second ) continue; it->second = ListenPort(it->first); if ( INVALID_SOCKET == it->second ) { sprintf( strPort, "%d", it->first ); strFaild += strPort; strFaild += " "; ret = false; } } if ( !ret ) m_startError += "listen port:" + strFaild + "faild"; return ret; }
// --- начертили пентаграмму и читаем заклинание призыва Демона ---------------- void DemonPorta::run() { configDemona = new QSettings(qApp->applicationDirPath()+"/config.ini", QSettings::IniFormat); ListenPort(portHandle); // демон призван! }