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上做的测试.
...全文
725 11 打赏 收藏 举报
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
我自己顶下
  • 打赏
  • 举报
回复
发帖
工具平台和程序库
加入

2.4w+

社区成员

C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
申请成为版主
帖子事件
创建了帖子
2006-01-07 04:53
社区公告
暂无公告