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

private:

    ~DBI_Input_Handler(){}

   

    ACE_SOCK_Stream peer_;

};

int DBI_Input_Handler::handle_input(ACE_HANDLE) {

    vector<char> v_line;

    int res;

    if((res = SockStreamOp::getLine(peer_,v_line)) <= 0) {

        ACE_DEBUG((LM_ERROR,"[%D][%t][%M][%N:%l]getLine:%d error,close the connection\n",res));

        disconnect();

        /*

        return -1 to detach the event handler from the reactor.

        */

        return -1;

}

for(int i=0; i < v_line.size(); i++) {

    printf("%x ",(0xff &buf[i]));

}

return 0;

}

 

SocketStreamOP 设计

class SockStreamOp {

public:

 static int send(ACE_SOCK_Stream &peer,char *buf,int size,const ACE_Time_Value *timeout = 0)  {

return peer.send_n(buf,size,timeout);

}

static int recv(ACE_SOCK_Stream &peer,char* buf,int size,const ACE_Time_Value *timeout = 0) {

return peer.recv_n(buf,size,timeout);

}

 static int getLine(ACE_SOCK_Stream &peer,VC &v,UINT32 max=1024) {

    char buf[1] ;

    int res = 0;

    int count = 0;

  推荐精品文章

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

  联系方式
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