找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 12548|回复: 6

ACE_Asynch_Read_Dgram使用open及recv参数问题

[复制链接]
发表于 2012-7-10 15:08:47 | 显示全部楼层 |阅读模式
2)ACE_Asynch_Read_Dgram:: open中参数const void *completion_key = 0是干嘛用的?
2)ACE_Asynch_Read_Dgram::recv中参数const void *act = 0是干嘛用的?

断点进去看了一下,还是云里雾里的?版主或哪个高手帮我说明一下.

以我看完后的理解:completion_key是用来判断连接是否连接上,可以调用相应的函数来获取completion_key参数是否已传入,若传入到ACE_Asynch_Read_Dgram中,表示open成功执行,若没有传入,或传入的参数与ACE_Asynch_Read_Dgram中不一样,表示open没有成功执行. ---------也不知道这样理解对不对?

而const void *act 好像被ACE_UNUSED_ARG取消定义了,这个参数就一点都不理解了.


忘各位兄弟姐妹帮我说明一下这两个参数的含义及作用.

发表于 2014-2-21 14:52:33 | 显示全部楼层
    Windows上的IOCP机制允许在绑定异步读写IO句柄时指定一个cookie式的completion_key,用户可以用来装载一些额外的信息,其它平台上并不支持,所以不具有可移植性。
    ACE自己也实现了类似的机制,允许用户为每个异步IO操作绑定一个cookie式的act,用户可以用它来存储一些额外的信息,比起Windows原生的功能,更加强大,因为可以具体到每一个异步操作,而不仅仅是每一个异步IO句柄。而且是ACE自己实现的,所以在所有平台上都可移植。
发表于 2014-2-21 15:13:10 | 显示全部楼层
yunh对ace了解的很深入啊
发表于 2014-2-21 15:28:17 | 显示全部楼层
过奖,到这儿才发现高手如林
发表于 2014-2-21 16:16:59 | 显示全部楼层
yunh 发表于 2014-2-21 15:28
过奖,到这儿才发现高手如林

有兴趣加群 260862613 这个群是我基于ace构建的开源服务器框架讨论群。

点评

好的,已发送请求  详情 回复 发表于 2014-2-25 15:41
发表于 2014-2-24 22:10:23 | 显示全部楼层
一个是per connection数据,一个是per io operation数据。
发表于 2014-2-25 15:41:34 | 显示全部楼层
freeeyes 发表于 2014-2-21 16:16
有兴趣加群 260862613 这个群是我基于ace构建的开源服务器框架讨论群。

好的,已发送请求
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

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

GMT+8, 2024-12-22 11:31 , Processed in 0.018273 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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