TCPServerLib::NET_ERROR_CODE TCPNetwork::Init(ServerConfig* pConfig, ILog* pLogger) { NET_ERROR_CODE ret; m_pConfig = pConfig; m_pLogger = pLogger; //Server socket setting 1 ret = InitServerPacket(); if (ret != NET_ERROR_CODE::NONE) { return ret; } //Server socket setting 2 ret = BindListen(m_pConfig->Port, m_pConfig->BackLogCount); if (ret != NET_ERROR_CODE::NONE) { return ret; } //File descriptor set for select FD_ZERO(&m_readSet); FD_SET(m_serverSocket, &m_readSet); //Create client information vector for maintaining and managing CreateSessionPool(m_pConfig->MaxClientCount + m_pConfig->ExtraClientCount); return NET_ERROR_CODE::NONE; }
NETWORK_ERROR_CODE TcpNetwork::Init(const ServerConfig* pConfig, ServerLog* pLogger) { memcpy(&m_Config, pConfig, sizeof(ServerConfig)); m_pRefLogger = pLogger; auto initRet = InitServerSocket(); if (initRet != NETWORK_ERROR_CODE::NONE) { return initRet; } auto bindListenRet = BindListen(pConfig->port, pConfig->backLogCount); if (bindListenRet != NETWORK_ERROR_CODE::NONE) { return bindListenRet; } FD_ZERO(&m_Readfds); FD_SET(m_ServerSockfd, &m_Readfds); CreateSessionPool(pConfig->maxClientCount + pConfig->extraClientCount); return NETWORK_ERROR_CODE::NONE; }