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

模拟服务器

开发平台:

C/C++

  1. //-----------------------------------------//
  2. //                                         //
  3. //  File : S3PDBSocketPool.h    //
  4. // Author : Yang Xiaodong            //
  5. // Modified : 8/26/2002                //
  6. //                                         //
  7. //-----------------------------------------//
  8. #ifndef _S3PDBSOCKETPOOL_H_
  9. #define _S3PDBSOCKETPOOL_H_
  10. #include "KStdAfx.h"
  11. #include "LoginDef.h"
  12. #include "S3PAccount.h"
  13. #include "S3PList.h"
  14. #include "S3PDBSocketParser.h"
  15. #include <list>
  16. using namespace std;
  17. class S3PDBSocketPool  
  18. {
  19. // Static members
  20. //------>BEGIN
  21. public:
  22. typedef struct tag_DBSOCKETPOOLDATAPACKET
  23. {
  24. DWORD dwFromIP;
  25. int iFromPort;
  26. DWORD dwSize;
  27. IBYTE dataBuf[def_UDPSIZE];
  28. }_DBSOCKETPOOLDATAPACKET, *_LPDBSOCKETPOOLDATAPACKET;
  29. typedef list<_DBSOCKETPOOLDATAPACKET> DBSPOOL;
  30. typedef struct tag_DBSOCKETPOOLPARAM
  31. {
  32. int* piRunSignal;
  33. HANDLE hEnableEvent;
  34. S3PDBSocketPool* pPool;
  35. }_DBSOCKETPOOLPARAM, *_LPDBSOCKETPOOLPARAM;
  36. S3PDBSocketPool();
  37. virtual ~S3PDBSocketPool();
  38. virtual BOOL Stop();
  39. virtual HANDLE Start();
  40. virtual void Init( SOCKET s, HANDLE hEnableEvent );
  41. virtual void PushDataPacket( _LPDBSOCKETPOOLDATAPACKET lpData );
  42. virtual BOOL PopDataPacket( _DBSOCKETPOOLDATAPACKET& data );
  43. virtual BOOL Process( _LPDBSOCKETPOOLDATAPACKET lpData );
  44. protected:
  45. static BOOL m_bAccDBIsLocked;
  46. S3PList m_UDPs;
  47. HANDLE m_hEnable;
  48. SOCKET m_Socket;
  49. int* m_piRunSignal;
  50. HANDLE m_hProcessor;
  51. DWORD m_dwProcessorThreadId;
  52. _DBSOCKETPOOLPARAM m_PoolParam;
  53. virtual BOOL SendUDP( DWORD dwTargetIP,
  54. int iTargetPort,
  55. IBYTE* pBuf,
  56. DWORD dwSize );
  57. virtual BOOL SendError( DWORD dwTargetIP, int iTargetPort );
  58. virtual BOOL Distribute( DWORD dwTargetIP,
  59. int iTargetPort,
  60. _LPCPARSEDDATAPACKET lpcParsedData );
  61. virtual BOOL ProMsgWhenLocked( DWORD dwTargetIP,
  62. int iTargetPort,
  63. _LPCPARSEDDATAPACKET lpcParsedData );
  64. virtual BOOL ProAddAccount( DWORD dwTargetIP,
  65. int iTargetPort,
  66. _LPCPARSEDDATAPACKET lpcParsedData );
  67. virtual BOOL ProLoginFromGame( DWORD dwTargetIP,
  68. int iTargetPort,
  69. _LPCPARSEDDATAPACKET lpcParsedData );
  70. virtual BOOL ProLogoutFromGame( DWORD dwTargetIP,
  71. int iTargetPort,
  72. _LPCPARSEDDATAPACKET lpcParsedData );
  73. virtual BOOL ProReportFromGame( DWORD dwTargetIP,
  74. int iTargetPort,
  75. _LPCPARSEDDATAPACKET lpcParsedData );
  76. virtual BOOL ProQueryGameserverList( DWORD dwTargetIP,
  77. int iTargetPort,
  78. _LPCPARSEDDATAPACKET lpcParsedData );
  79. virtual BOOL ProBeginGame( DWORD dwTargetIP,
  80. int iTargetPort,
  81. _LPCPARSEDDATAPACKET lpcParsedData );
  82. virtual BOOL ProDBLogin( DWORD dwTargetIP,
  83. int iTargetPort,
  84. _LPCPARSEDDATAPACKET lpcParsedData );
  85. virtual BOOL ProDBLogout( DWORD dwTargetIP,
  86. int iTargetPort,
  87. _LPCPARSEDDATAPACKET lpcParsedData );
  88. virtual BOOL ProDBQueryUserList( DWORD dwTargetIP,
  89. int iTargetPort,
  90. _LPCPARSEDDATAPACKET lpcParsedData );
  91. virtual BOOL ProDBLock( DWORD dwTargetIP,
  92. int iTargetPort,
  93. _LPCPARSEDDATAPACKET lpcParsedData );
  94. virtual BOOL ProDBActivate( DWORD dwTargetIP,
  95. int iTargetPort,
  96. _LPCPARSEDDATAPACKET lpcParsedData );
  97. virtual BOOL ProDBAddUser( DWORD dwTargetIP,
  98. int iTargetPort,
  99. _LPCPARSEDDATAPACKET lpcParsedData );
  100. virtual BOOL ProDBDeleteUser( DWORD dwTargetIP,
  101. int iTargetPort,
  102. _LPCPARSEDDATAPACKET lpcParsedData );
  103. virtual BOOL ProDBCreateAccount( DWORD dwTargetIP,
  104. int iTargetPort,
  105. _LPCPARSEDDATAPACKET lpcParsedData );
  106. };
  107. #endif // _S3PDBSOCKETPOOL_H_