找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4729|回复: 4

ACE_Proactor在DLL中使时,事件不能响应!

[复制链接]
发表于 2008-12-27 15:23:56 | 显示全部楼层 |阅读模式
在Win32平台上,ACE_Proactor放在DLL中使时,是不是有什么注意事项啊?

我用ACE_Proactor写了一个网络数据收发类,直接以源代码方式用这个类,没问题,建立连接,收发数据都OK。

可以,我将这类的代码,放在DLL中,以接口形式导出其功能,再去使用,就有问题,连接都无法建立!!!

我检测了一下网络包,发现TCP 三次握手的包都已成功发/收完,可是ACE_Proactor的连接成功建立事件没有响应!


这是为何? 请高人指点! 先谢过.
发表于 2008-12-27 20:22:37 | 显示全部楼层
没有运转起来吧?感觉好像是这样。没这样使用过,也不好说咋回事。
 楼主| 发表于 2008-12-29 10:05:59 | 显示全部楼层
ACE_Proactor 的事件循环是正常运行的:
  1.            
  2.   ACE_Time_Value t(10);
  3.   while ( ACE_Proactor::event_loop_done () == 0 )
  4.   {
  5.     ACE_Proactor::run_event_loop (t);
  6.    }
复制代码

但就是没有任何响应, 感觉ACE在脆弱了...
 楼主| 发表于 2008-12-29 11:17:34 | 显示全部楼层
晕,问题,找到了

手误,:@ 严重的手误;

问题就在上边的代码中:
  1.   while ( ACE_Proactor::event_loop_done () == 0 )
  2.   {
  3.     ACE_Time_Value t(10); //就这句放这就OK了,t是以引用方式传进去的,当其值减到0时,事件循环其实在空转
  4.     ACE_Proactor::run_event_loop (t);
  5.    }
复制代码

哎, 不是ACE脆弱,是我的手太脆弱...
发表于 2008-12-29 12:36:50 | 显示全部楼层
哈哈哈,先怀疑自己的代码是第一个要干的事情!
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-5-7 20:23 , Processed in 0.017257 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表