📄 svrmanage.cpp
字号:
#include "StdInc.h"
#include "SvrManage.h"
CSvrManage::CSvrManage()
{
m_GateServer = NULL;
}
CSvrManage::~CSvrManage()
{
}
BOOL CSvrManage::Init(BYTE byGateSvrNum)
{
m_GateServer = new CGateServer [byGateSvrNum];
if (m_GateServer == NULL) return FALSE;
m_iGateServerNum = byGateSvrNum;
int i=-1;
while(++i < MAX_STANDBY_SERVER)
{
m_pStandbyServer[i] = NULL;
}
m_iStandbyServerNum = 0;
return TRUE;
}
void CSvrManage::Close()
{
if (m_GateServer)
{
int i=-1;
while(++i < m_iGateServerNum)
{
m_GateServer[i].OnClose();
}
delete [] m_GateServer;
}
}
BOOL CSvrManage::NewStandbyServer(SOCKET s)
{
int i=-1;
while(++i < MAX_STANDBY_SERVER)
{
if (m_pStandbyServer[i] == NULL)
{
m_pStandbyServer[i] = new CStandbyServer(i, s, TRUE);
if (m_pStandbyServer[i] == NULL) return FALSE;
m_pStandbyServer[i]->SetNetEvent();
m_iStandbyServerNum++;
return TRUE;
}
}
return FALSE;
}
void CSvrManage::StandbyServerProc()
{
if (m_iStandbyServerNum == 0) return;
int i=-1;
while(++i < MAX_STANDBY_SERVER)
{
if (m_pStandbyServer[i])
{
if (m_pStandbyServer[i]->m_bConnect == FALSE)
{
delete m_pStandbyServer[i];
m_pStandbyServer[i] = NULL;
m_iStandbyServerNum--;
continue;
}
m_pStandbyServer[i]->SvrProc();
// Server Login 阑 贸府茄 StandbyServer捞搁 free茄促.
if (m_pStandbyServer[i]->m_bLogin)
{
delete m_pStandbyServer[i];
m_pStandbyServer[i] = NULL;
m_iStandbyServerNum--;
}
}
}
}
BOOL CSvrManage::IsInvalidSvrID(BYTE SvrID)
{
if (SvrID < m_iGateServerNum) return FALSE;
return TRUE;
}
BOOL CSvrManage::RunServer(CStandbyServer * pStandbyServer, BYTE SvrID)
{
if (m_GateServer[SvrID].m_bRunServer) return FALSE;
m_GateServer[SvrID].RunServer(pStandbyServer->m_sSocket, SvrID);
int n = pStandbyServer->GetSizeInBuf();
if (n > 0)
{
m_GateServer[SvrID].PushMsgQ(&(pStandbyServer->m_RecvMsgQBuf[pStandbyServer->m_nRecvStartPos]), n);
}
printf ("**************************************\n");
printf ("* GATE OK : %d *\n", SvrID);
printf ("**************************************\n");
return TRUE;
}
void CSvrManage::ServerProc()
{
int i=-1;
while(++i < m_iGateServerNum)
{
m_GateServer[i].SvrProc();
}
}
BOOL CSvrManage::SendMsg(BYTE SvrID, void * pMsg, int nLen)
{
if (m_GateServer[SvrID].SendMsg(pMsg, nLen))
{
return TRUE;
}
return FALSE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -