SATClient.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #ifndef __SAT_CLIENT__
  2. #define __SAT_CLIENT__
  3. #include "SocketHandle.h"
  4. #include "SocketClientImpl.h"
  5. //#include "SATProtocol.h"
  6. #include "SATData.h"
  7. #pragma once
  8. class CSATClient:public ISocketClientHandler
  9. {
  10. CSATClient(void);
  11. typedef SocketClientImpl<ISocketClientHandler> CSocketClient;
  12. friend CSocketClient;
  13. protected:
  14. // ISocketServerHandler
  15. virtual void OnThreadBegin(CSocketHandle* pSH);
  16. virtual void OnThreadExit(CSocketHandle* pSH);
  17. virtual void OnDataReceived(CSocketHandle* pSH, const BYTE* pbData, DWORD dwCount, const SockAddrIn& addr);
  18. virtual void OnConnectionDropped(CSocketHandle* pSH);
  19. virtual void OnConnectionError(CSocketHandle* pSH, DWORD dwError);
  20. public:
  21. static CSATClient* GetInstance()
  22. {
  23. static CSATClient* pInstance = NULL;
  24. if (pInstance == NULL)
  25. {
  26. pInstance = new CSATClient;
  27. }
  28. return pInstance;
  29. }
  30. ~CSATClient(void);
  31. private:
  32. BOOL m_bSocket; // 是否连接成功;
  33. int m_nSockType; // UDP 或 TCP
  34. int m_nMode; // IP4 或 IP6
  35. std::string lastData;
  36. CSocketClient m_SocketClient;
  37. bool OnSend(const byte* pData, int nLen, BOOL bShowGif = TRUE);
  38. bool OnReceive(const byte* pData, int nLen);
  39. bool OnClose();
  40. bool OnConnect();
  41. void TaskProcess(SATPROTO::Package *pak);
  42. public:
  43. // 启动TCP客户端连接实例;
  44. BOOL Start();
  45. // 停止TCP客户端连接;
  46. void Stop();
  47. // 多播(Multicasting);
  48. bool SetupMCAST();
  49. // 获取本机地址;
  50. void GetAddress(const SockAddrIn& addrIn, CString& rString) const;
  51. // 登录;
  52. bool TCPLogin(std::string strUserName, std::string strPassword, std::string strActuator, BOOL bLogin = TRUE, BOOL bShowGif = TRUE);
  53. // 登出;
  54. bool TCPLogout(std::string strUserName, std::string strPassword, std::string strActuator, BOOL bShowGif = TRUE);
  55. // 添加设备;
  56. bool TCPAddDevice(std::string strDevice, bool bDel = false, BOOL bShowGif = TRUE);
  57. // 删除设备;
  58. bool TCPDelDevice(std::string strDevice, BOOL bShowGif = TRUE);
  59. // 查询设备;
  60. bool TCPQueryDevices(BOOL bShowGif = TRUE);
  61. // 查询任务;
  62. bool TCPQueryTasks(BOOL bShowGif = TRUE);
  63. };
  64. #endif // __SAT_CLIENT__