📄 serversession.cpp
字号:
#include "stdafx.h"
#include <stdio.h>
#include "ServerSession.h"
#include "WorldServer.h"
#include "ServerSessionManager.h"
#include <Protocol_ServerCommon.h>
#include <PacketStruct_ServerCommon.h>
ServerSession::ServerSession()
{
}
ServerSession::~ServerSession()
{
}
VOID ServerSession::Init()
{
m_dwSessionIndex = 0;
m_dwServerKey = 0;
m_wConnectPort = 0;
m_bForConnect = FALSE;
m_dwLastHeartbeatTick = GetTickCount();
m_bConnection = FALSE;
m_strConnectIP.clear();
}
VOID ServerSession::Release()
{
}
VOID ServerSession::Update()
{
if( IsForConnect() )
{
// heartbeat 焊郴扁
DWORD dwCurTick = GetTickCount();
if( dwCurTick - m_dwLastHeartbeatTick > 10000 )
{
m_dwLastHeartbeatTick = dwCurTick;
MSG_HEARTBEAT msg;
msg.m_byCategory = 0;
msg.m_byProtocol = SERVERCOMMON_HEARTBEAT;
Send( (BYTE*)&msg, sizeof(MSG_HEARTBEAT) );
}
}
}
VOID ServerSession::OnConnect( BOOL bSuccess, DWORD dwNetworkIndex )
{
if( bSuccess )
{
SetForConnect( TRUE );
SetSessionIndex( dwNetworkIndex );
ServerSessionManager::Instance()->AddServer( this );
m_bConnection = TRUE;
SendServerType();
}
}
VOID ServerSession::OnAccept( DWORD dwNetworkIndex )
{
SetForConnect( FALSE );
SetSessionIndex( dwNetworkIndex );
m_bConnection = TRUE;
ServerSessionManager::Instance()->AddServer( this );
}
VOID ServerSession::OnDisconnect()
{
ServerSessionManager::Instance()->RemoveServer( GetSessionIndex() );
m_bConnection = FALSE;
}
VOID ServerSession::SetAddr( char *pszIP, WORD wPort )
{
m_strConnectIP = pszIP;
m_wConnectPort = wPort;
}
VOID ServerSession::SendServerType()
{
MSG_SERVER_TYPE msg;
msg.m_byCategory = 0;
msg.m_byProtocol = 0;
msg.m_byServerType = WORLD_SERVER;
Send( (BYTE*)&msg, sizeof(MSG_SERVER_TYPE) );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -