-
Notifications
You must be signed in to change notification settings - Fork 1.1k
How to set up the TCP server
kytooooo edited this page Aug 29, 2020
·
6 revisions
The Key-Code is the line below;
int nRet = m_pNetModule->Initialization(nMaxConnect, nPort, nCpus);
See the code:
NF_SHARE_PTR<NFIClass> xLogicClass = m_pClassModule->GetElement(NFrame::Server::ThisName());
if (xLogicClass)
{
const std::vector<std::string>& strIdList = xLogicClass->GetIDList();
for (int i = 0; i < strIdList.size(); ++i)
{
const std::string& strId = strIdList[i];
const int nServerType = m_pElementModule->GetPropertyInt32(strId, NFrame::Server::Type());
const int nServerID = m_pElementModule->GetPropertyInt32(strId, NFrame::Server::ServerID());
if (nServerType == NF_SERVER_TYPES::NF_ST_GAME && pPluginManager->GetAppID() == nServerID)
{
const int nPort = m_pElementModule->GetPropertyInt32(strId, NFrame::Server::Port());
const int nMaxConnect = m_pElementModule->GetPropertyInt32(strId, NFrame::Server::MaxOnline());
const int nCpus = m_pElementModule->GetPropertyInt32(strId, NFrame::Server::CpuCount());
//const std::string& strName = m_pElementModule->GetPropertyString(strId, NFrame::Server::ID());
//const std::string& strIP = m_pElementModule->GetPropertyString(strId, NFrame::Server::IP());
int nRet = m_pNetModule->Initialization(nMaxConnect, nPort, nCpus);
if (nRet < 0)
{
std::ostringstream strLog;
strLog << "Cannot init server net, Port = " << nPort;
m_pLogModule->LogNormal(NFILogModule::NLL_ERROR_NORMAL, NULL_OBJECT, strLog, __FUNCTION__, __LINE__);
NFASSERT(nRet, "Cannot init server net", __FILE__, __FUNCTION__);
exit(0);
}
}
}
}
The networking of NoahGameFrame using TCP protocol to communicate between different servers, addition, using Protocol-buf to help pack and unpack the TCP stream.