ClientSocket.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #pragma once
  2. #include <afxwin.h>
  3. #include <atlbase.h>
  4. #include "SocketHandle.h"
  5. #include "SocketClientImpl.h"
  6. #include "head.h"
  7. class CClientSocket:public ISocketClientHandler
  8. {
  9. typedef SocketClientImpl<ISocketClientHandler> CSocketClient;
  10. friend CSocketClient;
  11. protected:
  12. // SocketClient Interface handler
  13. virtual void OnThreadBegin(CSocketHandle* pSH);
  14. virtual void OnThreadExit(CSocketHandle* pSH);
  15. virtual void OnDataReceived(CSocketHandle* pSH, const BYTE* pbData, DWORD dwCount, const SockAddrIn& addr);
  16. virtual void OnConnectionDropped(CSocketHandle* pSH);
  17. virtual void OnConnectionError(CSocketHandle* pSH, DWORD dwError);
  18. protected:
  19. HANDLE m_hSemNet;
  20. CRITICAL_SECTION m_csReadFinished;
  21. //CRITICAL_SECTION m_csWrFinished;
  22. private:
  23. bool GetDestination(SockAddrIn& addrIn) const;
  24. int ReadDataRes(char *pTmpData);
  25. int WriteDataRes(char *pData);
  26. int ReadDataResError(char *pData);
  27. int WriteDataResError(char *pData);
  28. public:
  29. int ClientSend(char* pMsg, int iLen);
  30. BOOL Connection(LPCTSTR strAddr, LPCTSTR strPort);
  31. void DisConnection(void);
  32. bool SetupMCAST();
  33. void GetAddress(const SockAddrIn& addrIn, CString& rString) const;
  34. void ProcessData(CSocketHandle *pSH, const BYTE* pData, DWORD nLen);
  35. int OnCmdProcess(void *pData, int iDataLen);
  36. public:
  37. int WorkMain(REQUESTPARAM SetBasePara, int iVarID);
  38. int RequestStatus(REQUESTPARAM SetBasePara, int iVarID);
  39. public:
  40. CClientSocket(void);
  41. ~CClientSocket(void);
  42. public:
  43. int m_nSockType; //UDP »ò TCP
  44. int m_nMode; //IP4 »ò IP6
  45. BOOL m_bSocket;
  46. CSocketClient m_SocketClient;
  47. public:
  48. RESPONSE_STRUCT m_structResponse;
  49. REQUESTWRPARAM m_RequestWrParam;
  50. };