tcp_client_lst.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536
  1. #pragma once
  2. #include "define.h"
  3. #ifdef USE_NET_TCP_CLIENT
  4. #include <string.h>
  5. #include "HPSocket/HPSocket.h"
  6. namespace ylib
  7. {
  8. namespace network
  9. {
  10. namespace tcp
  11. {
  12. /*接收数据的线程池调用线程,用于再调用用户提供的指针,主要是考虑到 m_sportMode 模式才会使用到该函数*/
  13. void __HP_CALL callback_thread_recv_tcpclient(PVOID param);
  14. class client;
  15. class client_lst :public CTcpClientListener
  16. {
  17. public:
  18. client_lst(client* client);
  19. ~client_lst();
  20. friend class client;
  21. private:
  22. virtual EnHandleResult OnPrepareConnect(ITcpClient* pSender, CONNID dwConnID, SOCKET socket) override;
  23. virtual EnHandleResult OnConnect(ITcpClient* pSender, CONNID dwConnID) override;
  24. virtual EnHandleResult OnHandShake(ITcpClient* pSender, CONNID dwConnID) override;
  25. virtual EnHandleResult OnReceive(ITcpClient* pSender, CONNID dwConnID, const BYTE* pData, int iLength) override;
  26. virtual EnHandleResult OnSend(ITcpClient* pSender, CONNID dwConnID, const BYTE* pData, int iLength) override;
  27. virtual EnHandleResult OnClose(ITcpClient* pSender, CONNID dwConnID, EnSocketOperation enOperation, int iErrorCode) override;
  28. virtual EnHandleResult OnReceive(ITcpClient* pSender, CONNID dwConnID, int iLength) override;
  29. private:
  30. int m_state;
  31. ylib::network::tcp::client* m_client;
  32. };
  33. }
  34. }
  35. }
  36. #endif