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