📄 qasyntcpserver.h
字号:
//------------------------------------------------------------------------------
// Note: Private Header
#ifndef QAsynTcpServerH
#define QAsynTcpServerH
#include "Interface_QAsynTcpServer.H"
#include <assert.h>
#include <stlPort/hash_map>
namespace N_QAsynTcpServer {
//------------------------------------------------------------------------------
struct ITEM
{
std::string RecvBuf;
std::string SendBuf;
unsigned int SendBufLoc;
std::string SendStoreBuf;
bool Alive;
unsigned int LastTime;
bool GraceShutDown;
};
const unsigned int DEFAULT_TIMEOUT = 60 * 1000;//默认超时
const unsigned int TIMEOUT_CHECK_TIME = 5 * 1000;
const unsigned int RECV_BUF_SIZE = 8192;
//------------------------------------------------------------------------------
class QAsynTcpServer : public IQAsynTcpServer
{
public:
__stdcall QAsynTcpServer();
virtual __stdcall ~QAsynTcpServer();
virtual void __stdcall Release(void) {assert(this); delete this;}
virtual void __stdcall SetTimeOut(unsigned int TimeOutMs);
virtual bool __stdcall Send(int Sock, const std::string& Data);
virtual void __stdcall Recv(int Sock, std::string* pData);
virtual void __stdcall Process(void);
virtual void __stdcall ShutDown(int Sock);
virtual void __stdcall ShutDownForce(int Sock);
virtual bool __stdcall Insert(int Sock);
virtual void __stdcall Delete(int Sock);
virtual bool __stdcall IsAlive(int Sock)const;
virtual bool __stdcall IsExist(int Sock)const;
virtual unsigned int __stdcall GetSendStore(int Sock)const;
virtual unsigned int __stdcall GetCount(void)const;
private:
void ProcessCheckRecv(void);
void ProcessCheckSend(void);
void ProcessTimeOut(bool DoNow);
void ProcessRecv(int Sock);
void ProcessSend(int Sock);
private:
typedef std::hash_map<int, ITEM> SOCKET_MAP;
unsigned int m_TimeOut;
SOCKET_MAP m_SocketMap;
unsigned int m_TimeOutCheckTime;
std::vector<int> m_SelectSrc;
std::vector<int> m_SelectOut;
};
//------------------------------------------------------------------------------
}//namespace
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -