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

📄 eroomiplist.h

📁 network library that can be use all network application!
💻 H
字号:
#ifndef	EROOMIPLIST_DEF
#define	EROOMIPLIST_DEF

#include	<windows.h>

#define		EI_ST_CONNECTED			0x0001
#define		EI_ST_TIMEOUT			0x0002
#define		EI_ST_DISCONNECTED		0x0004

#define		EI_ST_RECONNECT			0x1000

#define		EI_POOLTIME				20000	// 10檬

///////////////////////////////////////////////////////////////////////////////////////////
//
//	EI_ST_CONNECTED		: 泅犁 楷搬等惑怕
//	EI_ST_DISCONNECTED	: 厚 楷搬惑怕
//	EI_ST_RECONNECT		: 谗绢柳版快 犁 楷搬夸备 
//  
// (1) 楷搬等惑怕 : 林扁利栏肺 POLLING(林绢柳 矫埃)
//                  3林扁 捞惑狼 矫埃捞 儒福搁 DISCONNECTED ==> 皋技瘤免仿 
///////////////////////////////////////////////////////////////////////////////////////////


struct __EROOMIPLIST
{
	unsigned long		m_Ip;
	unsigned short		m_Port;
	int					m_Status;
	int					m_Count;
	unsigned long		m_Time;

	__EROOMIPLIST		*mp_Prev;
	__EROOMIPLIST		*mp_Next;
};

typedef struct __EROOMIPLIST EROOMIPLIST;


#define		AddDestination(x, y)	Insert(x, y)


class CEroomIpList  
{
	EROOMIPLIST			*mp_Head;
	CRITICAL_SECTION	m_CSection;

public:
	CEroomIpList();
	virtual ~CEroomIpList();

	EROOMIPLIST *Head();

	EROOMIPLIST *Insert(char *ap_Ip, int a_Port, int a_Status=EI_ST_CONNECTED|EI_ST_RECONNECT);
	EROOMIPLIST *Insert(EROOMIPLIST *ap_Item);
	int		Delete(char *ap_Ip, int a_Port);
	int		Delete(EROOMIPLIST *ap_Item);
	int		Clear();
	EROOMIPLIST *Find(char *ap_Ip, int a_Port);
	void	SetStatus(char *ap_Ip, int a_Port, int a_Status);
	void	AddStatus(char *ap_Ip, int a_Port, int a_Status);
	void	DelStatus(char *ap_Ip, int a_Port, int a_Status);
	int		GetStatus(char *ap_Ip, int a_Port);


	void	StartCSection() { 	EnterCriticalSection(&m_CSection); };
	void	EndCSection()   { 	LeaveCriticalSection(&m_CSection); };
};

#endif

⌨️ 快捷键说明

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