xiliang_pan 发表于 2010-12-7 14:23:53

ACE_Acceptor ACE_TP_Reactor

ACE_Acceptor<CServer_Acceptor,ACE_SOCK_ACCEPTOR> acceptor;//连接工厂

class CServer_Acceptor: public ACE_Svc_Handler<ACE_SOCK_STREAM,ACE_MT_SYNCH>
        {
        public:
                CServer_Acceptor();
                      ~CServer_Acceptor();
               
                virtual int handle_input(ACE_HANDLE fd = ACE_INVALID_HANDLE);

                virtual int handle_close(ACE_HANDLE /* = ACE_INVALID_HANDLE */, ACE_Reactor_Mask /* = ACE_Event_Handler::ALL_EVENTS_MASK */);
               
        };

int handle_close(ACE_HANDLE ,ACE_Event_Handler)
{delete this;
return 0;
}
请高手指点:当有连接时,ACE_Acceptor框架会新建服务处理器,通信结束时,在哪里释放服务处理器比较好呢?现在是在handle_close方法里,用delete this实现的,请问有没有更合适的方法?
多谢

featherwit 发表于 2010-12-8 09:15:22

这个是比较常见方法吧,用handle close来delete this,把析构函数声明为private来强制new
将回收处理交给对象自己不是挺好的么

xiliang_pan 发表于 2010-12-8 14:50:26

ACE_Sock_Stream 的send 、recv方法设置超时怎么觉得不起作用呢?

featherwit 发表于 2010-12-8 14:54:16

ACE_Sock_Stream 的send 、recv方法设置超时怎么觉得不起作用呢?
xiliang_pan 发表于 2010-12-8 14:50 http://www.acejoy.com/bbs/images/common/back.gif

呃... ...不会吧,你怎么确认的没起作用,代码是怎么写的。

xiliang_pan 发表于 2010-12-9 16:11:16

因为接收数据时,接收的数据量很大,指定的n没有起到作用,永远都不会超时

xiliang_pan 发表于 2010-12-9 16:12:51

有QQ吗?
页: [1]
查看完整版本: ACE_Acceptor ACE_TP_Reactor