你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 网络与通信
运用ACE消除网络通信复杂性(七)
 

if (this->peer_acceptor_.accept (dih->get_peer(),0,0,1) ==-1) {// 获得连接

        ACE_ERROR_RETURN((LM_ERROR,"Connection establish error\n"),0);

    }

 

    ACE_DEBUG((LM_INFO,"[%D][%t][%M][%N:%l]Connect to DBI succ\n"));

 

    // 注册具体业务的事件处理器到反应堆

    ACE_Reactor::instance()->register_handler(dih,ACE_Event_Handler::READ_MASK);

   

// 返回0 表示 反应堆需要继续处理本事件处理器DBI_Accept_Handler

    return 0;

}

3.3 处理业务数据

DBI_Input_Handler设计

class DBI_Input_Handler: public ACE_Event_Handler {

public:

    DBI_Input_Handler(){}

 

    ACE_HANDLE get_handle() const {

        return peer_.get_handle();// 返回给反应堆的事件句柄

    }

 

    ACE_SOCK_Stream & get_peer() {

        return peer_;

    }

   

    virtual int handle_input(ACE_HANDLE handle);

   

    virtual int handle_close(ACE_HANDLE handle, ACE_Reactor_Mask mask) {     

        delete this; // 当连接结束时删除自身

    }

   

private:

    void disconnect() {

        peer_.close_reader();

        peer_.close_writer();

        peer_.close();

    }

  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089