Chinaunix首页 | 论坛 | 博客
  • 博客访问: 818670
  • 博文数量: 756
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 4980
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 14:40
文章分类

全部博文(756)

文章存档

2011年(1)

2008年(755)

我的朋友

分类:

2008-10-13 16:12:06


太简单了,不说了。

#include
#include
#include "clienthandler.h"

//用来网络连接
class ClientAcceptor : public ACE_Asynch_Acceptor
{
public:
 /**
  *
  * \return
  */
 ClientAcceptor(){}

 /**
  *
  * \return
  */
 ~ClientAcceptor(){}

public:
 //在这里增加验证代码
 /**
  *
  * \param result
  * \param &remote
  * \param &local
  * \return
  */
 virtual int validate_connection(
  const ACE_Asynch_Accept::Result& result,
  const ACE_INET_Addr &remote,
  const ACE_INET_Addr &local);

 virtual ClientHandler *make_handler (void);

};


 

int ClientAcceptor::validate_connection(
        const ACE_Asynch_Accept::Result& result,
        const ACE_INET_Addr &remote,
        const ACE_INET_Addr &local)
{
 FUNC_ENTER;
 return 0;
}

//BUG FIXED!!!
//这个地方取得了CLIENTMANAGER的CLIENTHANDLE的时候,实际上并未初始化成功,
//而这时候线程被中断掉了。
ClientHandler *ClientAcceptor::make_handler (void)
{
 FUNC_ENTER;

//从内存池取得实例,假如返回NULL的话,ACE系统会自动把这个给关掉。
 return ClientManager::get_instance().get_clienthandler();
}


--------------------next---------------------

阅读(577) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~