⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serversession.cpp

📁 奇迹世界 部分源代码奇迹世界 部分源代码奇迹世界 部分源代码
💻 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 + -