while((res = SockStreamOp::recv(peer,buf, 1)) > 0 && buf[0] != CR) {
count++;
if(count > max) {
ACE_DEBUG((LM_ERROR,"[%D][%t][%M][%N:%l]The length:%d of command is too long.Max length:%d\n",count,max));
break;
}
v.push_back(buf[0]);
}
return res;
}
};
4 结语从上面的例子可以看出运行ACE进行网络服务编程非常简单,框架也非常清晰,用户可以把精力更多地放在具体业务的处理上,而不用关心具体连接建立、维护的过程。并且运用ACE进行网络通信编程的程序具有跨平台的特点。如果服务的连接类型需要发生改变,仅仅只需要传递具体的反应堆实例给ACE_Reactor即可,这个类的缺省实例是select模型。
|