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

📄 servertable.h

📁 [Server]Distribute.rar这个是分发服务器的源码
💻 H
字号:
// ServerTable.h: interface for the CServerTable class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SERVERTABLE_H__C42B519F_767C_4291_B2DA_5F077251C100__INCLUDED_)
#define AFX_SERVERTABLE_H__C42B519F_767C_4291_B2DA_5F077251C100__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

//--------------------------------------------------------------------------
// 辑滚 沥焊甫 啊瘤绊 乐绰 努贰胶
// 沥焊甫 肺靛窍瘤 臼绰促.
// 辑滚包访胶鸥飘档 窍瘤 臼绰促.
//--------------------------------------------------------------------------
#include <HashTable.h>


enum eSERVER_KIND
{
	eSK_NONE,
	eSK_DIST	= 1,
	eSK_AGENT	= 2,
	eSK_MAP		= 3,
};


class CServerTable  : public CYHHashTable<SERVERINFO>
{
/*
#ifdef __AGENTSERVER__
	WORD				m_MapIDMapNum[MAX_MAP_NUM];		// MapID殿废窍绰 函荐.
#endif //__AGENTSERVER__*/


	//DWORD		m_dwMaxBucketNum;
	DWORD		m_MaxServerConnectionIndex;
	
public:
	CServerTable();
	virtual ~CServerTable();
	void Init(DWORD dwBucketNum);
	void Release();


	//---- 沥焊 贸府 糕滚(秦浆肺 贸府)
	SERVERINFO * FindServer(WORD Port);
	SERVERINFO* FindServerForConnectionIndex(DWORD dwConnectionIndex);
	void AddServer(SERVERINFO * info, WORD Port);
	SERVERINFO * RemoveServer(DWORD dwConnectionIndex);			// key啊 酒丛 & 府畔登绰 SERVERINFO(赛 皋葛府)瘤况具 窃
	SERVERINFO * RemoveServer(WORD wKey);
	void RemoveAllServer();										// HASH俊 拱妨乐绰 SERVERINFO(赛皋葛府)鳖瘤 促 瘤框

	SERVERINFO* GetNextServer();
	SERVERINFO* GetNextDistServer();
	SERVERINFO* GetNextMapServer();
	SERVERINFO* GetNextAgentServer();
	
	void AddSelfServer(SERVERINFO * info);
	void AddMSServer(SERVERINFO * info);
	//---- 沥焊 掘绰 糕滚
	SERVERINFO * GetSelfServer(){ return m_pSelfServerInfo; }
	SERVERINFO * GetMSServer(){ return m_pMSServerInfo; }

	
	SERVERINFO* GetServer(WORD ServerKind, WORD ServerNum);
	WORD GetServerPort(WORD ServerKind, WORD ServerNum);
	WORD GetServerNum(WORD ServerPort);
/*
#ifdef __AGENTSERVER__
	void SetMapRegist(BYTE MapNum, WORD port)
	{
		m_MapIDMapNum[MapNum] = port; 
	}
	WORD GetMapRegistPort(BYTE MapNum)
	{
		return m_MapIDMapNum[MapNum]; 
	}
	BYTE GetMapRegistMapNum(WORD Port)
	{
		for(int i=0; i<MAX_MAP_NUM; i++)
		{
			if(m_MapIDMapNum[i] == Port)
				return i;
		}
		return 0;
	}
#endif //__AGENTSERVER__*/

	DWORD GetMaxServerConnectionIndex(){return m_MaxServerConnectionIndex;}
	void SetMaxServerConnectionIndex(DWORD val){ m_MaxServerConnectionIndex=val; }	
	
	SERVERINFO* GetFastServer(WORD ServerKind);
	BOOL GetFastServer(WORD ServerKind, char* pOutIP,WORD* pOutPort);

protected:
	SERVERINFO * m_pSelfServerInfo;
	SERVERINFO * m_pMSServerInfo;
};

//extern char * SERVER_KIND_STR[];
extern CServerTable * g_pServerTable;

#endif // !defined(AFX_SERVERTABLE_H__C42B519F_767C_4291_B2DA_5F077251C100__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -