📄 idmanager.h
字号:
//=================微妙的平衡=================//
// ID池,一方面提供本地临时IP地址,另一方面提供根据IP地址反查会话指针的功能
#pragma once
#define ID_MAX_COUNT 0xFFFF
#define LPPIDManager IDManager**
#define LPIDManager IDManager*
#define CLIDManager IDManager
class IDManager
{
public:
IDManager(void);
virtual ~IDManager(void);
protected:
WORD m_wNextID; //下一个要交付的ID指针(实际是数组下标)
WORD m_wNewID; //刚回收的ID指针,数组下标
WORD *m_pIDPool; //ID池,65536个
void **m_pPtrPool; //指针池,与ID对应的,以利于反查
public:
BOOL InitIDPool(); //初始化ID池
WORD GetIDFromPool(void *pClient); //获取一个有效ID号码,直接返回此ID
void RecoveID(WORD id); //回收一个ID
void* GetClientFromID(DWORD id); //根据id反查指针
BOOL SwapIDPtr(DWORD sID,DWORD tID); //交换ID指针
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -