⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qasyntcpserver.h

📁 BCB下的高效开发包。包含大并发的网络库
💻 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 + -