标签:
1 class IOCP 2 { 3 private: 4 IOCP() 5 { 6 //创建完成端口(备注:OS维护的一个队列,OS把i/o操作已经完成的事件通知放到这里)的句柄 7 if ((m_hIOCP = CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, NULL, 0)) == NULL) 8 ; 9 //创建工作线程,用来处理完成端口消息的 10 m_hWorkerThread = CreateThread(NULL, 0, WorkThread, (LPVOID)this, 0, &m_workerThreadID); 11 }; 12 ~IOCP(); 13 private: 14 static IOCP* m_instance; 15 public: 16 static IOCP* Instance() 17 { 18 if( m_instance == NULL ) 19 { 20 m_instance = new IOCP(); 21 } 22 return m_instance; 23 } 24 void Wait(); 25 static DWORD __stdcall WorkThread(LPVOID Param); 26 HANDLE m_hIOCP; //完成端口的句柄 27 private: 28 HANDLE m_hWorkerThread; //工作线程句柄 29 DWORD m_workerThreadID; 30 public: 31 //将套接字绑定到完成端口 32 bool RegisterToCompletionPort( SOCKET socket , void* completionKey); 33 };
标签:
原文地址:http://www.cnblogs.com/QQ122252656/p/4174732.html