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

模拟服务器

开发平台:

C/C++

  1. #include "Stdafx.h"
  2. #include <objbase.h>
  3. #include <initguid.h>
  4. #include "Network.h"
  5. #include "Macro.h"
  6. #include "Inifile.h"
  7. #include "Utils.h"
  8. #include "tstring.h"
  9. using OnlineGameLib::Win32::CIniFile;
  10. using OnlineGameLib::Win32::GetAppFullPath;
  11. using OnlineGameLib::Win32::_tstring;
  12. using OnlineGameLib::Win32::CCriticalSection;
  13. OnlineGameLib::Win32::CLibrary CNetwork::m_theHeavenLib( "heaven.dll" );
  14. OnlineGameLib::Win32::CLibrary CNetwork::m_theRainbowLib( "rainbow.dll" );
  15. #define MAX_STRING_LEN 100
  16. CNetwork::CNetwork()
  17. : /*m_pAccSvrClient( NULL )
  18. , */m_nAccSvrPort( 0 )
  19. , m_nRoleSvrPort( 0 )
  20. , m_nClientOpenPort( 0 )
  21. , m_nGameSvrOpenPort( 0 )
  22. {
  23. }
  24. CNetwork::~CNetwork()
  25. {
  26. }
  27. bool CNetwork::Create()
  28. {
  29. CIniFile theConfigFile;
  30. _tstring sAppPath = GetAppFullPath( NULL );
  31. _tstring sConfigFile;
  32. sConfigFile = sAppPath + "Bishop.cfg";
  33. theConfigFile.SetFile( sConfigFile.c_str() );
  34. m_sRoleSvrIP.resize( MAX_STRING_LEN );
  35. DWORD dwLen = theConfigFile.ReadString( "Network", "RoleSvrIP", const_cast< char * >( m_sRoleSvrIP.c_str() ), MAX_STRING_LEN, "" );
  36. m_sRoleSvrIP.resize( dwLen + 1 /* '' */ );
  37. m_nRoleSvrPort = theConfigFile.ReadInteger( "Network", "RoleSvrPort", 0 );
  38. m_sAccSvrIP.resize( MAX_STRING_LEN );
  39. dwLen = theConfigFile.ReadString( "Network", "AccSvrIP", const_cast< char * >( m_sAccSvrIP.c_str() ), MAX_STRING_LEN, "" );
  40. m_sAccSvrIP.resize( dwLen + 1 /* '' */ );
  41. m_nAccSvrPort = theConfigFile.ReadInteger( "Network", "AccSvrPort", 0 );
  42. m_nClientOpenPort = theConfigFile.ReadInteger( "Network", "ClientOpenPort", 0 );
  43. m_nGameSvrOpenPort = theConfigFile.ReadInteger( "Network", "GameSvrOpenPort", 0 );
  44. return true;
  45. }
  46. void CNetwork::Destroy()
  47. {
  48. /* if ( m_pAccSvrClient )
  49. {
  50. m_pAccSvrClient->Cleanup();
  51. }
  52. SAFE_RELEASE( m_pAccSvrClient );
  53. */
  54. CIniFile theConfigFile;
  55. _tstring sAppPath = GetAppFullPath( NULL );
  56. _tstring sConfigFile;
  57. sConfigFile = sAppPath + "Bishop.cfg";
  58. theConfigFile.SetFile( sConfigFile.c_str() );
  59. theConfigFile.WriteString( "Network", "AccSvrIP", m_sAccSvrIP.c_str() );
  60. theConfigFile.WriteInteger( "Network", "AccSvrPort", m_nAccSvrPort );
  61. theConfigFile.WriteString( "Network", "RoleSvrIP", m_sRoleSvrIP.c_str() );
  62. theConfigFile.WriteInteger( "Network", "RoleSvrPort", m_nRoleSvrPort );
  63. theConfigFile.WriteInteger( "Network", "ClientOpenPort", m_nClientOpenPort );
  64. theConfigFile.WriteInteger( "Network", "GameSvrOpenPort", m_nGameSvrOpenPort );
  65. }
  66. //IClient *CNetwork::CreateAccSvrClient( const char * const pAddressToConnectServer, 
  67. //   unsigned short usPortToConnectServer )
  68. //{
  69. // if ( m_pAccSvrClient )
  70. // {
  71. // IClient *pClonClient = NULL;
  72. // m_pAccSvrClient->QueryInterface( IID_IESClient, reinterpret_cast< void ** >( &pClonClient ) );
  73. //
  74. // return pClonClient;
  75. // }
  76. //
  77. // /*
  78. //  * There is connectted the heaven by the rainbow
  79. //  */
  80. // pfnCreateClientInterface pClientFactroyFun = ( pfnCreateClientInterface )( m_theRainbowLib.GetProcAddress( _T( "CreateInterface" ) ) );
  81. //
  82. // IClientFactory *pClientFactory = NULL;
  83. //
  84. // if ( pClientFactroyFun && SUCCEEDED( pClientFactroyFun( IID_IClientFactory, reinterpret_cast< void ** >( &pClientFactory ) ) ) )
  85. // {
  86. // pClientFactory->SetEnvironment( 1024 * 1024 );
  87. //
  88. // pClientFactory->CreateClientInterface( IID_IESClient, reinterpret_cast< void ** >( &m_pAccSvrClient ) );
  89. //
  90. // SAFE_RELEASE( pClientFactory );
  91. // }
  92. //
  93. // if ( m_pAccSvrClient )
  94. // {
  95. // m_pAccSvrClient->Startup();
  96. //
  97. // m_pAccSvrClient->RegisterMsgFilter( reinterpret_cast< void * >( this ), AccSvrEventNotify );
  98. //
  99. // if ( FAILED( m_pAccSvrClient->ConnectTo( pAddressToConnectServer, usPortToConnectServer ) ) )
  100. // {
  101. // m_pAccSvrClient->Cleanup();
  102. //
  103. // SAFE_RELEASE( m_pAccSvrClient );
  104. //
  105. // return NULL;
  106. // }
  107. //
  108. // /*
  109. //  * Recorder
  110. //  */
  111. // m_sAccSvrIP = pAddressToConnectServer;
  112. // m_nAccSvrPort = usPortToConnectServer;
  113. //
  114. // IClient *pClonClient = NULL;
  115. // m_pAccSvrClient->QueryInterface( IID_IESClient, reinterpret_cast< void ** >( &pClonClient ) );
  116. //
  117. // return pClonClient;
  118. // }
  119. //
  120. // return NULL;
  121. //}
  122. /*void __stdcall CNetwork::AccSvrEventNotify( LPVOID lpParam, const unsigned long &ulnEventType )
  123. {
  124. CNetwork *pThis = reinterpret_cast< CNetwork * >( lpParam );
  125. ASSERT( lpParam );
  126. switch ( ulnEventType )
  127. {
  128. case enumServerConnectCreate:
  129. ::MessageBeep( -1 );
  130. break;
  131. case enumServerConnectClose:
  132. if ( pThis )
  133. {
  134. pThis->DistroyAccSvrClient();
  135. }
  136. break;
  137. }
  138. }
  139. void CNetwork::DistroyAccSvrClient()
  140. {
  141. SAFE_RELEASE( m_pAccSvrClient );
  142. }*/