📄 mainserver.cpp
字号:
#include "StdInc.h"
#include "Common.h"
#include "Functions.h"
CMainServer::CMainServer()
{
m_bRunServer = FALSE;
}
CMainServer::~CMainServer()
{
}
BOOL CMainServer::RunServer()
{
if (Connect(g_szMainServerIP, g_nMainServerPort) == FALSE) return FALSE;
ResizeSNDBUF(MAIN_SOCK_BUF_SIZE);
ResizeRCVBUF(MAIN_SOCK_BUF_SIZE);
// Main Server俊 立加窍搁 Server Login Message 傈价
Msg_S2M_Svr_Login.byThisServerID = g_byThisServerID;
// 酒流 send thread甫 剁快瘤 臼疽栏骨肺 流立 send
send(m_sSocket, (const char *)&Msg_S2M_Svr_Login, sizeof(Msg_S2M_Svr_Login), 0);
m_bConnect = TRUE;
m_nRecvStartPos = m_nRecvEndPos = 0;
m_bRunServer = TRUE;
SetNetEvent();
if (InitSendThread() == FALSE) return FALSE;
return TRUE;
}
void CMainServer::OnClose()
{
CloseSendThread();
m_bConnect = FALSE;
m_bRunServer = FALSE;
closesocket(m_sSocket);
}
BOOL CMainServer::GetMsgHeader(MSG_S2S_HEADER * pMsgHeader)
{
if (GetSizeInBuf() < sizeof(MSG_S2S_HEADER)) return FALSE;
memcpy(pMsgHeader, &(m_RecvMsgQBuf[m_nRecvStartPos]), sizeof(MSG_S2S_HEADER));
return TRUE;
}
void CMainServer::ParseMsg()
{
char tmpBuffer[8192];
MSG_S2S_HEADER tmpMsgHeader;
void * pMsg;
while(GetSizeInBuf())
{
if (GetMsgHeader(&tmpMsgHeader) == FALSE) return;
switch(tmpMsgHeader.wProtocol)
{
case M2S_ERROR:
//printf("Main M2S_ERROR\n");
if (( pMsg = PopMsgQ(sizeof(MSG_M2S_ERROR)) ) == NULL) return;
Func_M2S_ERROR((MSG_M2S_ERROR *)pMsg);
break;
case M2S_CHAR_LOGIN:
//printf("Main M2S_CHAR_LOGIN\n");
if (( pMsg = PopMsgQ(sizeof(MSG_M2S_CHAR_LOGIN)) ) == NULL) return;
Func_M2S_CHAR_LOGIN((MSG_M2S_CHAR_LOGIN *)pMsg);
break;
case M2S_CHAR_UPDATE:
//printf("Main M2S_CHAR_UPDATE\n\n");
if (( pMsg = PopMsgQ(sizeof(MSG_M2S_CHAR_UPDATE)) ) == NULL) return;
Func_M2S_CHAR_UPDATE((MSG_M2S_CHAR_UPDATE *)pMsg);
break;
case M2S_ANS_CREATE_PLAYER:
if (( pMsg = PopMsgQ(sizeof(MSG_M2S_ANS_CREATE_PLAYER)) ) == NULL) return;
Func_M2S_ANS_CREATE_PLAYER((MSG_M2S_ANS_CREATE_PLAYER *)pMsg);
break;
case M2S_ANS_DELETE_PLAYER:
//printf("Main M2S_ANS_DELETE_PLAYER\n\n");
if (( pMsg = PopMsgQ(sizeof(MSG_M2S_ANS_DELETE_PLAYER)) ) == NULL) return;
Func_M2S_ANS_DELETE_PLAYER((MSG_M2S_ANS_DELETE_PLAYER *)pMsg);
break;
default :
//抗寇贸府
Print("From Main: Unknown Server Protocol!\n");
if (PopMsgQ(&tmpBuffer, GetSizeInBuf()))
break;
}
}
}
BOOL CMainServer::ExceptionHandler(BYTE ErrCode)
{
switch(ErrCode)
{
case SEND_FAILURE:
break;
case READ_FAILURE:
break;
default:
// 抗寇贸府
break;
}
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -