| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 | #pragma once#include "TCPClientSocket.h"#include <list>#include <map>struct per_user_data;class CSendTask;class CSuperTCPClient : public CTCPClientSocket{public:	CSuperTCPClient();	~CSuperTCPClient();	virtual void Close() override;	//ÖØ·¢, Óе¥¶ÀÏ̵߳÷ÓÃ	BOOL ReSend();	void Insert(LPBYTE pPack, int nPackLen, uint32_t packno, E_ZL_PROTOCAL protocal, bool);	inline void SetFather(per_user_data* a)	{		m_pFather = a;	}protected:	BOOL RecvPack(uint32_t packno, E_ZL_PROTOCAL protocal);	std::map<time_t, uint64_t> m_mapSendCout;protected:	BOOL HandleSubNotify(LPHJDATAHEAD2 lpHead, char* json, int json_len);protected:	virtual void ProcessPack(LPBYTE pPack, int nLen) override;	virtual void OnConnect(int nErrorCode) override;	virtual void OnClose(int nErrorCode) override;private:	per_user_data* m_pFather = nullptr;	std::list<CSendTask*> m_task;	std::mutex m_mtx;};
 |