ACE中使用Reactor模式,当handle_event() 或者 run_reactor_event_loop()发生错误返回-1, 怎么样恢复??

flashboy 2006-01-07 04:53:22
问大家个问题, 我在Reactor模式中 使用 run_reactor_event_loop() 处理事件, 可以当它返回-1后,就退出了. 重复执行已经没有用了,好象会不停的返回-1. 请问,如何在run_reactor_event_loop()或者handle_event()返回-1时候,可以修复错误,让其继续可以响应网络事件??? 一般什么错误会造成返回-1而无法继续完成响应事件呢? 我是在WIN32上做的测试.
...全文
787 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ThinkInDelphi 2006-03-17
  • 打赏
  • 举报
回复
在socket关闭时:
先:ACE_Reactor::instance ()->remove_handler (this, ACE_Event_Handler::READ_MASK|ACE_Event_Handler::DONT_CALL);
peer().close();
再重新acceptor。
flashboy 2006-03-16
  • 打赏
  • 举报
回复
TO :liaoyong2(ly)
如果是服务器怎么办呢.
lovedna 2006-02-06
  • 打赏
  • 举报
回复
mark
mgphuang 2006-02-06
  • 打赏
  • 举报
回复
楼上正解
liaoyong2 2006-01-24
  • 打赏
  • 举报
回复
网络出现问题了,返回-1,socket会自动关闭,
你可以在外面再加一层while(1),重新建立连接
Darkay_Lee 2006-01-21
  • 打赏
  • 举报
回复
可能和owner有关系,在你调用 run_reactor_event_loop() 的那个线程中,调用一下这个函数看看:

reactor()->owner(ACE_Thread::self());
run_mei 2006-01-17
  • 打赏
  • 举报
回复
有两种情况会返回-1
一、你调过close
二、系统内部错误,你可以调GetLastError查一下原因
flashboy 2006-01-16
  • 打赏
  • 举报
回复
up
flashboy 2006-01-11
  • 打赏
  • 举报
回复
up!
lifengice0706 2006-01-10
  • 打赏
  • 举报
回复
不知道如果reactor返回-1怎么恢复,今天看了np1和np2也没找到,up,gz!
flashboy 2006-01-09
  • 打赏
  • 举报
回复
我自己顶下

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧