SuperTCPClient.h 914 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #pragma once
  2. #include "TCPClientSocket.h"
  3. #include <list>
  4. #include <map>
  5. struct per_user_data;
  6. class CSendTask;
  7. class CSuperTCPClient : public CTCPClientSocket
  8. {
  9. public:
  10. CSuperTCPClient();
  11. ~CSuperTCPClient();
  12. virtual void Close() override;
  13. //ÖØ·¢, Óе¥¶ÀÏ̵߳÷ÓÃ
  14. BOOL ReSend();
  15. void Insert(LPBYTE pPack, int nPackLen, uint32_t packno, E_ZL_PROTOCAL protocal, bool);
  16. inline void SetFather(per_user_data* a)
  17. {
  18. m_pFather = a;
  19. }
  20. protected:
  21. BOOL RecvPack(uint32_t packno, E_ZL_PROTOCAL protocal);
  22. std::map<time_t, uint64_t> m_mapSendCout;
  23. protected:
  24. BOOL HandleSubNotify(LPHJDATAHEAD2 lpHead, char* json, int json_len);
  25. protected:
  26. virtual void ProcessPack(LPBYTE pPack, int nLen) override;
  27. virtual void OnConnect(int nErrorCode) override;
  28. virtual void OnClose(int nErrorCode) override;
  29. private:
  30. per_user_data* m_pFather = nullptr;
  31. std::list<CSendTask*> m_task;
  32. std::mutex m_mtx;
  33. };