tcpservthr.h

来自「《unix网络编程技术与分析》一书的C源程序」· C头文件 代码 · 共 58 行

H
58
字号
/****************************************************
class name : TcpServThr
Function: support TCP Server with multithread
******************************************************/

class TcpServThr : public MySocket
{
   int max_connections;
   vector<MyThread*>* ThrSet;
   
public:
   TcpServThr();
   TcpServThr(int port, char *hostname = NULL); 
   TcpServThr(int port, int maxconn, char *hostname = NULL);
   virtual ~TcpServThr();
   
   void SetMaxConn(int num) {max_connections = num;}
   int GetMaxConn() {return max_connections;}
   int Init();
   int Run(); 
   
   virtual void DealRecv(MyThread* thread);
   virtual void DealSend(MyThread* thread);

protected:
    int CreateThr(MyThread** Rthread, MyThread** Wthread);
    void AddThread(MyThread* thread);
    void DelThread(MyThread* thread);
    int WaitAllThr();
    
    class Receiver : public MyThread
    {
    public:
       int socket;
       TcpServThr* server;
    
       Receiver(int connsocket, TcpServThr* serv) {
          socket = connsocket;
          server = serv;
          }
       void run() { server->DealRecv(this); }
    };

    class Sender : public MyThread
    {
    public:
       int socket;
       TcpServThr* server;
    
       Sender(int connsocket, TcpServThr* serv) {
          socket = connsocket;
          server = serv;
          }
       void run() { server->DealSend(this); }
    };

};

⌨️ 快捷键说明

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