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

模拟服务器

开发平台:

C/C++

  1. // testMaxNetworkLink.cpp : Defines the entry point for the console application.
  2. //
  3. #include "stdafx.h"
  4. #include <objbase.h>
  5. #include <initguid.h>
  6. //#include <winsock2.h>
  7. #include <process.h>
  8. #include <iostream.h>
  9. #include <stdio.h>
  10. #include "IClient.h"
  11. #include "RainbowInterface.h"
  12. typedef HRESULT ( __stdcall * pfnCreateClientInterface )(
  13. REFIID riid,
  14. void **ppv
  15. );
  16. void __stdcall ClientEventNotify(
  17. LPVOID lpParam,
  18. const unsigned long &ulnEventType )
  19. {
  20. switch( ulnEventType )
  21. {
  22. case enumServerConnectCreate:
  23. break;
  24. case enumServerConnectClose:
  25. break;
  26. }
  27. }
  28. int main(int argc, char* argv[])
  29. {
  30. bool ok = false;
  31. IClient *pClient = NULL;
  32. IClientFactory *pClientFactory = NULL;
  33. HMODULE hModule = ::LoadLibrary( "rainbow.dll" );
  34. if ( hModule )
  35. {
  36. pfnCreateClientInterface pFactroyFun = ( pfnCreateClientInterface )GetProcAddress( hModule, "CreateInterface" );
  37. if ( SUCCEEDED( pFactroyFun( IID_IClientFactory, reinterpret_cast< void ** >( &pClientFactory ) ) ) )
  38. {
  39. pClientFactory->SetEnvironment( 50, 8192 );
  40. ok = true;
  41. }
  42. }
  43. DWORD dwCount = 0;
  44. while ( ok )
  45. {
  46. pClientFactory->CreateClientInterface( IID_IESClient, reinterpret_cast< void ** >( &pClient ) );
  47. if ( !pClient )
  48. {
  49. return 0;
  50. }
  51. pClient->Startup();
  52. pClient->RegisterMsgFilter( reinterpret_cast< void * >( pClient ), ClientEventNotify );
  53. pClient->ConnectTo( "61.55.138.19", 5622 );
  54. static const char *pData = "How are you?";
  55. pClient->SendPackToServer( pData, strlen( pData ) );
  56. if ( dwCount ++ & 0x80000000 )
  57. {
  58. dwCount = 0;
  59. }
  60. cout << "Connections : " << dwCount << endl;
  61. pClient->Cleanup();
  62. pClient->Release();
  63. }
  64. pClientFactory->Release();
  65. ::FreeLibrary( hModule );
  66. return 0;
  67. }