ACE Tutorial [翻译] 06 -page01 :: 风之谷

来源: BlogBus 原始链接: http://www.blogbus.com:80/blogbus/blog/diary.php?diaryid=508334 存档链接: https://web.archive.org/web/20041222133829id_/http://www.blogbus.com:80/blogbus/blog/diary.php?diaryid=508334


风之谷 有关ACE/TAO,还有CORBA的学习资料 <<<ACE Tutorial [翻译] 05 -page05 | 首页 | ACE Tutorial [翻译] 06 -page02>>> ACE Tutorial [翻译] 06 -page01 时间:2004-11-21 在这个教程中,我们在教程5的基础上进行扩展,创建一线程每连接的服务器。这个实现将为每一个连接到我们的客户端创建一个新的线程。ACE_Reactor在这里还是被使用,但目前只负责处理接收新的连接。Client_Handler对象将不向reactor进行注册,而是只负责直接监听他们的peer()。 概述: 这里我们将创建一个连接每线程的简单服务器。这是一个单线程服务器向多线程服务器转变的第一步。 在这里我们将使用 Strategy模式。ACE_Acceptor继承与ACE_Acceptor_Base类,这样就可以根据服务器使单线程还是每个连接一个线程,来实现不同的并发策略。这样也允许我们能够将来扩展服务器功能,在以实现不同的策略。 这些连接信息都是向 Client_Handler传递的(还记得 ACE_Acceptor< Client_Handler,ACE_SOCK_ACCEPTOR>吗?)。那个Client_Handler是一个派生于Event_Handler的ACE_Svc_Handler,并且Client_Handler还与ACE_Sock_Stream相关联。同时它(Client_Handler)也派生于ACE_Task 类,这样来允许我们实现一线程每连接的工作方式。 我们在 svc方法中实现数据的交互处理,svc方法被一线程每连接服务器的线程所调用。 注意这里所有的Client_Handler对象都没有向reactor进行注册。Reactor在这里只负责接收客户的连接。 一旦为连接建立线程,Client Handler对象就需要为客户连接负责,并且取代reactor的工作,处理后面的事件。

  • Abstract by Kirthika as always jnn 发表于 2004-11-21 16:59 引用Trackback(0) | 编辑 评论 发表评论 最后更新 ACE Tutorial [翻译] 08-page04 ACE Tutorial [翻译] 08-page03 ACE Tutorial [翻译] 08-page02 ACE Tutorial [翻译] 08-page01 ACE Tutorial [翻译] 06 -page05 ACE Tutorial [翻译] 06 -page04 ACE Tutorial [翻译] 06 -page03 ACE Tutorial [翻译] 06 -page02 ACE Tutorial [翻译] 06 -page01 ACE Tutorial [翻译] 05 -page05