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

模拟服务器

开发平台:

C/C++

  1. //////////////////////////////////////////////////////////////////////////////////////
  2. //
  3. //  FileName    :   KSocketClient2.h
  4. //  Version     :   1.0
  5. //  Creater     :   Freeway Chen
  6. //  Date        :   2003-9-16 15:35:35
  7. //  Comment     :   
  8. //
  9. //////////////////////////////////////////////////////////////////////////////////////
  10. #ifndef _KSOCKETCLIENT2_H_
  11. #define _KSOCKETCLIENT2_H_  1
  12. #include "winsock2.h"
  13. #include "IClient.h"
  14. #define KSOCKETCLIENT_MAX_BUFFER_SIZE   (64 * 1024)
  15. class KSocketClient2 : public IClient
  16. {
  17. public:
  18.     virtual HRESULT STDMETHODCALLTYPE QueryInterface( 
  19.         /* [in] */ REFIID riid,
  20.         /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  21.     
  22.     virtual ULONG STDMETHODCALLTYPE AddRef( void);
  23.     
  24.     virtual ULONG STDMETHODCALLTYPE Release( void);
  25.     // Initialize server object and start up it
  26.     virtual HRESULT STDMETHODCALLTYPE Startup();
  27. // Stop this object and destroy it
  28. virtual HRESULT STDMETHODCALLTYPE Cleanup();
  29. // Connect to a specified server
  30. virtual HRESULT STDMETHODCALLTYPE ConnectTo(
  31.         const char * const &pAddressToConnectServer,
  32.         unsigned short usPortToConnectServer
  33.     );
  34. virtual HRESULT STDMETHODCALLTYPE RegisterMsgFilter(
  35. LPVOID lpParam,
  36. CALLBACK_CLIENT_EVENT pfnEventNotify
  37. );
  38. // Send some data to the current server
  39. virtual HRESULT STDMETHODCALLTYPE SendPackToServer(
  40.         const void * const pData,
  41.         const size_t &datalength
  42. );
  43. // Get some data from the current server
  44. virtual const void * STDMETHODCALLTYPE GetPackFromServer(
  45.     size_t  &datalength
  46. );
  47. // Disconnect a specified connection
  48. virtual HRESULT STDMETHODCALLTYPE Shutdown();
  49. private:
  50.     ULONG   m_ulRefCount;
  51.     void *m_pvCallBackParam;
  52.     CALLBACK_CLIENT_EVENT m_pfnCallBack;
  53.     unsigned char m_InBuffer [KSOCKETCLIENT_MAX_BUFFER_SIZE];
  54.     unsigned char m_OutBuffer[KSOCKETCLIENT_MAX_BUFFER_SIZE];
  55.     SOCKET          m_Socket;
  56.     int             m_nReturnBufferFlag;
  57.     unsigned char  *m_pbyInBufferEnd;
  58.     int             m_nRemainSize;
  59. public:
  60.     KSocketClient2();
  61.     ~KSocketClient2();
  62. };
  63. #endif  // _KSOCKETCLIENT2_H_