ACE_INET_Addr addr_to_listen(global.listenport, ACE_LOCALHOST);
ClientAcceptor acceptor;
acceptor.reactor(ACE_Reactor::instance());
//开始监听,向反应器进行登记,请求它在可以接受新连接时回调自己。
if (acceptor.open(addr_to_listen) == -1)
{
CString str;
//获取系统时间
CTime tm;
tm=CTime::GetCurrentTime();
str=tm.Format("%Y年%m月%d日 %X");
str=str+" listen failed!"+"\r\n";
fwrite(str,1,strlen(str),pFile);
fflush(pFile);
return ;
}
else
{
CString str;
CTime tm;
tm=CTime::GetCurrentTime();
str=tm.Format("%Y年%m月%d日 %X");
str=str+" listen success!"+"\r\n";
fwrite(str,1,strlen(str),pFile);
fflush(pFile);
}
此步正确
t=ACE_Reactor::instance()->run_reactor_event_loop();
if(t<0)
{
CString str;
CTime tm;
tm=CTime::GetCurrentTime();
str=tm.Format("%Y年%m月%d日 %X");
str=str+" 反应器事件循环失败"+"\r\n";
fwrite(str,1,strlen(str),pFile);
fflush(pFile);
}
else
{
CString str;
CTime tm;
tm=CTime::GetCurrentTime();
str=tm.Format("%Y年%m月%d日 %X");
CString s;
s.Format("%d",t);
fwrite(s,1,strlen(s),pFile);
fwrite(str,1,strlen(str),pFile);
fflush(pFile);
}
此步无返回值
int ClientAcceptor::handle_input(ACE_HANDLE fd)
{}
发起链接时,根本没有进来handle-input
怀疑是event loop 停了,但我没有过操作啊 |