找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 3072|回复: 4

ACE example Reactive_Server中的问题

[复制链接]
发表于 2010-4-6 18:23:40 | 显示全部楼层 |阅读模式
  1.         virtual int handle_connection()
  2.         {
  3.                 if(active_handles_.is_set(acceptor().get_handle()))//is_set集中的句柄是活动,返回1
  4.                 {
  5.                         while(acceptor().accept(logging_handler().peer())==0)
  6.                                 master_handle_set_.set_bit(logging_handler().peer().get_handle());
  7.                         active_handles_.clr_bit(acceptor().get_handle());
  8.                 }
  9.                 return 0;
  10.         }
复制代码
个人觉得这边的master_handle_set_.set_bit()应换成active_handles_.set_bit()
因为
  1.         virtual int handle_data(ACE_SOCK_Stream*)
  2.         {
  3.                 ACE_Handle_Set_Iterator peer_iterator(active_handles_);
  4.                 for (ACE_HANDLE handle;(handle=peer_iterator())!=ACE_INVALID_HANDLE;)
  5.                 {
  6.                         logging_handler().peer().set_handle(handle);
  7.                         if (logging_handler().log_record()==-1)
  8.                         {
  9.                                 master_handle_set_.clr_bit(handle);
  10.                                 logging_handler().close();
  11.                         }
  12.                 }
  13.                 return 0;
  14.         }
复制代码
这边是对active_handles_遍历,那前面不就是应该换成active_handles_.set_bit()吗?
 楼主| 发表于 2010-4-6 19:55:49 | 显示全部楼层
感觉两个好像都行,不知道哪位高手可以分析一下?
 楼主| 发表于 2010-4-6 20:44:00 | 显示全部楼层
晕,这论坛好像很冷!不过这样修改还要改变其他的东西,不过算是理解了原作者的本意了。但还是欢迎各位来探讨研究一下。唉~~
发表于 2010-4-6 22:31:35 | 显示全部楼层
可能是大家都用不到这个,所以都不太了解。
发表于 2010-4-8 00:19:54 | 显示全部楼层
1. "个人觉得这边的master_handle_set_.set_bit()应换成active_handles_.set_bit()"
NO

2. "这边是对active_handles_遍历,那前面不就是应该换成active_handles_.set_bit()吗?"
NO.

3.这应该是简单的服务器应用,而使用现成的框架,代码要健壮得多。
这样的东东,无意义,除非你爱好。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-11-22 12:04 , Processed in 0.022573 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表