📄 cmiocpmudule.h
字号:
#ifndef __MATRIX_IOCPMUDULE_H
#define __MATRIX_IOCPMUDULE_H
#include <MatrixCore/Network/CMServerSocket.h>
#include <MatrixCore/Network/CMWorkThread.h>
#include <MatrixCore/Network/CMIocpAccept.h>
#include <MatrixCore/Network/CMPQueue.h>
#include <MatrixCore/System/CMThread.h>
#include <MatrixCore/System/CMException.h>
//#include <MatrixCore/Pattern/CMSingleton.h>
using namespace MatrixCore::Network;
using namespace MatrixCore::System;
//using namespace MatrixCore::Pattern;
namespace MatrixCore
{
namespace Network
{
#define DEF_WORKERTHREAD 4
#define DEF_WORKERTHREADMAX 100
class CMIocpMudule : public CMThread
{
public:
static CMIocpMudule* GetInstance();
static void ReleaseInstance();
INT GetWorkerThreadSize();
bool Initialize(char * pIPAddress,int iPort,int iMaxAcceptUser
,int WorkerThreadMax,LPTHREAD_START_ROUTINE StartRoutine = NULL);
HANDLE GetWorkerIOCPHandle();
bool AddHandleToIOCP( HANDLE handle, DWORD keyValue );
BOOL AddWorkerThead(LPTHREAD_START_ROUTINE StartRoutine);
BOOL DelWorkerThead();
BOOL SetIPAddress(char * pIPAddress,int iPort); // IP客 器飘甫 汲沥秦霖促.
BOOL GetIPAddress(char * pIPAddress,int* iPort); // IP客 器飘 锅龋啊 乐绰瘤 犬牢茄促.
int SetServerSocket(char * pIP, int iPort);
SOCKET GetListenSocket() {
return m_ListenSock;
} // Accept Socket阑 掘绢辰促.
CMIocpMudule();
CMIocpMudule(char * pIPAddress,int iPort);
virtual ~CMIocpMudule();
CMIocpAccept* m_pIOAccepter; // Accept 努贰胶
volatile long m_UserCount; // 立加 牢盔荐.
int m_Def_Workerthread;
static int m_iThreadCurrentCnt; //况目静饭靛 肮荐
private:
static CMIocpMudule* m_pSelfInstance;
char m_pIPAdress[16];
int m_iPort;
SOCKET m_ListenSock;
HANDLE m_hWorkerIOCP;
CMWorkerThread* m_pWorkerThread[DEF_WORKERTHREADMAX];
};
}
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -