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

模拟服务器

开发平台:

C/C++

  1. /********************************************************************
  2. created: 2003/02/15
  3. file base: GameServer
  4. file ext: h
  5. author: liupeng
  6. purpose:
  7. *********************************************************************/
  8. #ifndef __INCLUDE_ONLINEGAME_GAMESERVER_H__
  9. #define __INCLUDE_ONLINEGAME_GAMESERVER_H__
  10. #if defined (_MSC_VER) && (_MSC_VER >= 1020)
  11. #pragma once
  12. #endif
  13. //[ Include in ...IPCPServer
  14. #include "IOCPServerSocketServer.h"
  15. #include "IOCPServertstring.h"
  16. //]
  17. /*
  18.  * Classes defined in other files...
  19.  */
  20. namespace OnlineGameLib {
  21. namespace Win32 {
  22. //[ Include in ...IPCPServer
  23. class CIOCompletionPort;
  24. //]
  25. } // End of namespace OnlineGameLib
  26. } // End of namespace Win32
  27. class CGameServer : public OnlineGameLib::Win32::CSocketServer
  28. {
  29. public :
  30. CGameServer(
  31. const std::string &welcomeMessage,
  32. unsigned long addressToListenOn,
  33. unsigned short portToListenOn,
  34. size_t maxFreeSockets,
  35. size_t maxFreeBuffers,
  36. size_t bufferSize = 1024,
  37. size_t numThreads = 0);
  38. CGameServer(
  39. const std::string &welcomeMessage,
  40. size_t maxFreeSockets,
  41. size_t maxFreeBuffers,
  42. size_t bufferSize = 1024,
  43. size_t numThreads = 0);
  44. virtual ~CGameServer();
  45. private :
  46. virtual WorkerThread *CreateWorkerThread(
  47. OnlineGameLib::Win32::CIOCompletionPort &iocp);
  48. virtual SOCKET CreateListeningSocket(
  49. unsigned long address,
  50. unsigned short port);
  51. virtual void OnStartAcceptingConnections();
  52. virtual void OnStopAcceptingConnections();
  53. virtual void OnShutdownInitiated();
  54. virtual void OnShutdownComplete();
  55. virtual void OnConnectionCreated();
  56. virtual void OnConnectionEstablished(
  57. OnlineGameLib::Win32::CSocketServer::Socket *pSocket,
  58. OnlineGameLib::Win32::CIOBuffer *pAddress);
  59. virtual void OnConnectionClosed( 
  60. OnlineGameLib::Win32::CSocketServer::Socket *pSocket );
  61. virtual void OnConnectionDestroyed();
  62. virtual void OnError( const OnlineGameLib::Win32::_tstring &message );
  63. virtual void PreWrite( 
  64. OnlineGameLib::Win32::CSocketServer::Socket *pSocket, 
  65. OnlineGameLib::Win32::CIOBuffer *pBuffer, 
  66. const char *pData, 
  67. size_t dataLength );
  68. const std::string m_welcomeMessage;
  69. // No copies do not implement
  70. CGameServer( const CGameServer &rhs );
  71. CGameServer &operator=( const CGameServer &rhs );
  72. };
  73. #endif //__INCLUDE_ONLINEGAME_GAMESERVER_H__