CheckThread.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:2k
源码类别:

模拟服务器

开发平台:

C/C++

  1. ////////////////////////////////////////////////////////////////////////////////
  2. //  
  3. //  FileName    :   CheckThread.h
  4. //  Version     :   1.0
  5. //  Creater     :   Linsuyi
  6. //  Date        :   2002-01-17  10:24:27
  7. //  Comment     :   KAVuser-net check thread header file
  8. //  
  9. ////////////////////////////////////////////////////////////////////////////////
  10. #if !defined(AFX_CHECKTHREAD_H__188A7CAB_A1DA_474F_94CA_E8E2BC751447__INCLUDED_)
  11. #define AFX_CHECKTHREAD_H__188A7CAB_A1DA_474F_94CA_E8E2BC751447__INCLUDED_
  12. #if _MSC_VER > 1000
  13. #pragma once
  14. #endif // _MSC_VER > 1000
  15. #include "BusyThread.h"
  16. #define defCHECK_SERVER_PORT                6868
  17. #define defCHECK_RECEIVE_MAX_SIZE           1000
  18. #define defCHECK_TIME_SEP                   60
  19. #define defCHECK_TIME_OUT                   60000
  20. #define defCHECK_TRY_TIMES                  5
  21. class IKCheckCallback
  22. {
  23. public:
  24.     virtual int GetCheckInfo(
  25.         ULONG   ulContextWith,
  26.         int     *pnSendSize,
  27.         unsigned char **ppbySendInfo
  28.     ) = 0;
  29.     virtual int CheckRecvInfo(
  30.         ULONG   ulContextWith,
  31.         int     nRecvSize,
  32.         unsigned char  *pbyRecvInfo
  33.     ) = 0;
  34.     virtual void CheckResult(
  35.         ULONG   ulContextWith,
  36.         int     nServerResult
  37.     ) = 0;
  38. };
  39. class CCheckThread
  40.   : public CBusyThread
  41. {
  42. public:
  43.     CCheckThread();
  44.     virtual ~CCheckThread();
  45.     
  46. public:
  47.     int SetCheckCallback(IKCheckCallback *piCallback, ULONG ulContextWith);
  48.     int AddCheckServer(const char *pszCheckServer, int nCheckPort = defCHECK_SERVER_PORT);
  49.     
  50. public:
  51.     virtual int Create();
  52.     virtual void Destroy();
  53.     
  54. public:
  55.     virtual int StartThread();
  56.     
  57.     virtual int RemindStop();
  58.     
  59. protected:
  60.     virtual int QueryStop();
  61.     
  62.     virtual ULONG MainExecution();
  63.     
  64. private:
  65.     HANDLE  m_hKillEvent;
  66.     
  67.     ULONG   m_ulContextWith;
  68.     IKCheckCallback *m_piCallback;
  69.     
  70.     CPtrArray m_paServerAddress;
  71.     CWordArray m_waServerPort;
  72.     
  73.     int     m_nTimeOut;
  74.     int     m_nTryTimes;
  75. };
  76. #endif // !defined(AFX_CHECKTHREAD_H__188A7CAB_A1DA_474F_94CA_E8E2BC751447__INCLUDED_)