📄 recvmessthread.h
字号:
/// /// @file TaskThread.h/// @brief 任务类 , 接受client发的消息进行处理/// @author guozhiming/// @date 2007-05-17/// #ifndef __TASKTHREAD__#define __TASKTHREAD__#include "def.h"#include "Thread.h"#include "ThreadPool.h"#include "Lock.h"#include "DMCThread.h"#include "LogThread.h"class G_ThreadPool;class G_RecvMessThread : public G_Thread{ public: /// @brief 构造函数 G_RecvMessThread(G_ThreadPool*,DMCThread*,LogThread*,int,int,int); /// @brief 析构函数 ~G_RecvMessThread(); /// @brief 主线程运行 void Run(); /// @brief 填加套接字 /// /// @param nSocket 套接字 void addSocket(int,char*,unsigned short); /// @brief 获得连接的客户端数目 /// /// @return 数目 G_Lock counterLock; unsigned int getCounter(); private: void readBindReq(char* buffer,struct BINDREQ* bindReq); void makeBindRep(char* buffer,struct BINDREP* bindRep); void readValidateReq(char* buffer,struct VALIDATEREQ* ); void makeValidateRep(char* buffer,struct VALIDATEREP* ); bool setNonBlock(int sockfd); void subCounter(); bool addEvent(int nSocket,unsigned int event); bool modEvent(int nSocket,unsigned int event); bool delEvent(int nSocket); void closeSocket(int nSocket,struct epoll_event* ev); void bind(char* buffer,struct SESSION* session,int fd); void validate(char* buffer,struct SESSION* session,int fd); int connectTarget(struct sockaddr_in* servaddr); void checkTunnel(struct SESSION* session,int fd,struct epoll_event* ev,bool isReading); void swapRead(struct SESSION* session,int fd,struct epoll_event* ev,bool isClient); void swapWrite(struct SESSION* session,int fd,struct epoll_event* ev,bool isClient); void read(struct epoll_event* ev); void write(struct epoll_event* ev); int sendn(int nSocket , char *str , unsigned int nLen); int recvn(int nSocket , char *str , unsigned int nLen); void ReportAuthResult(unsigned short id,int result); int epfd; struct epoll_event events[256]; char buffer[65536]; unsigned int counter; G_ThreadPool *g_threadPool; DMCThread* dmcThread; LogThread* logThread; int authTimeout; int normalTimeout;};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -