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

📄 qtcpconnecter.h

📁 BCB下的高效开发包。包含大并发的网络库
💻 H
字号:
//---------------------------------------------------------------------------
#ifndef QTcpConnecterH
#define QTcpConnecterH
#include "Interface_QTcpConnecter.H"
#include "../QTemplateBase/QTemplateBase.h"
#include <stlPort/hash_map>
#include <queue>
namespace qtcp_connecter {
//---------------------------------------------------------------------------
struct SOCK_ITEM
{
        std::string TaskName;
        int         StartTime;
};
//---------------------------------------------------------------------------
#define S_TASK_ITEM TASK_ITEM
struct S_TASK_ITEM
{
        std::string TaskName;
        int         Socket;    //正确的是 > 0的
        int         Reserve;
};
//---------------------------------------------------------------------------
class QTcpConnecter : public IQTcpConnecter
{
        public:
                        __stdcall QTcpConnecter();
                virtual __stdcall ~QTcpConnecter();
                virtual void __stdcall Release(void);

                virtual bool __stdcall Start(void);
                virtual bool __stdcall IsPowerOn(void)const;
                virtual void __stdcall Stop(void);

                virtual bool __stdcall PushTask(const std::string& Addr, int Port
                    , const std::string& TaskName);
                virtual bool __stdcall ReadResult(std::string* pTaskName, int* pSocket);

                virtual void __stdcall Process(void);
                virtual void __stdcall SetTimeOut(int TimeOut) {m_TimeOut = TimeOut;}
                virtual int  __stdcall GetCount(void)const{ return m_SockMap.size() + m_Output.size();}
        private:
                void ReleaseSockMap(void);

                void ProcessExcept(void);
                void ProcessWrite(void);
                void ProcessTimeOut(void);
        private:
                typedef std::hash_map<int, SOCK_ITEM> SOCK_MAP;
                SOCK_MAP                m_SockMap;
                QWeakQueue<S_TASK_ITEM>  m_Output;
                bool                    m_IsPowerOn;
                int                     m_TimeOut;
};
//---------------------------------------------------------------------------
}
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -