ACE example Reactive_Server中的问题
virtual int handle_connection()
{
if(active_handles_.is_set(acceptor().get_handle()))//is_set集中的句柄是活动,返回1
{
while(acceptor().accept(logging_handler().peer())==0)
master_handle_set_.set_bit(logging_handler().peer().get_handle());
active_handles_.clr_bit(acceptor().get_handle());
}
return 0;
}
个人觉得这边的master_handle_set_.set_bit()应换成active_handles_.set_bit()
因为
virtual int handle_data(ACE_SOCK_Stream*)
{
ACE_Handle_Set_Iterator peer_iterator(active_handles_);
for (ACE_HANDLE handle;(handle=peer_iterator())!=ACE_INVALID_HANDLE;)
{
logging_handler().peer().set_handle(handle);
if (logging_handler().log_record()==-1)
{
master_handle_set_.clr_bit(handle);
logging_handler().close();
}
}
return 0;
}
这边是对active_handles_遍历,那前面不就是应该换成active_handles_.set_bit()吗? 感觉两个好像都行,不知道哪位高手可以分析一下? 晕,这论坛好像很冷!不过这样修改还要改变其他的东西,不过算是理解了原作者的本意了。但还是欢迎各位来探讨研究一下。唉~~ 可能是大家都用不到这个,所以都不太了解。 1. "个人觉得这边的master_handle_set_.set_bit()应换成active_handles_.set_bit()"
NO
2. "这边是对active_handles_遍历,那前面不就是应该换成active_handles_.set_bit()吗?"
NO.
3.这应该是简单的服务器应用,而使用现成的框架,代码要健壮得多。
这样的东东,无意义,除非你爱好。
页:
[1]