销毁多客户端/服务器系统中与客户端相关的数据

时间:2013-01-28 06:26:05

标签: c++ tcp

我将构建一个多客户端/服务器系统。它应该像这样工作:

  1. 客户端使用TCP / IP与服务器通信

  2. 当客户端连接到服务器时,客户端发送命令字符串。当服务器收到命令字符串时,它会解析它,执行所需的工作,然后向客户端发送响应。

  3. 当客户端关闭TCP连接时,服务器将销毁与该客户端相关的资源。

  4. 服务器是一个多线程程序。命令receive,命令parse,命令deal和对客户端的响应可能都在不同的线程中。

  5. 现在,我想定义一个CmdTcpContext类来包含与客户端相关的数据。

    class CmdTcpContext
     18 {
     19 public:
     20     CmdTcpContext(){recv_buff_.SetRecvList(&recv_list_);}
     21     ~CmdTcpContext(){}
     22     
     23     CmdRecvBuffer & recv_buff(){return recv_buff_;}
     24     SendBuffer & send_buff(){return send_buff_;}
     25 
     26     RecvList<CmdPackage> & recv_list(){return recv_list_;}
     27     RecvList<CmdPackage> & send_list(){return send_list_;}
     28     
     29     InetAddr & inet_addr(){return addr_;}
     30     SockStream & sock_stream(){return stream_;}
     31 
     32     EventHandler * event_handler(){return handler_;}
     33     void event_handler(EventHandler * eh){handler_ = eh;}
     34 private:
     35     SockStream stream_;
     36     InetAddr addr_;
     37 
     38     CmdRecvBuffer recv_buff_;
     39     SendBuffer send_buff_;
     40 
     41     RecvList<CmdPackage> recv_list_;
     42     RecvList<CmdPackage> send_list_;
     43 
     44     EventHandler *handler_;
     45 };
    

    我的问题是:当客户端关闭连接时,如何销毁CmdTcpContext对象?

0 个答案:

没有答案