找回密码
 用户注册

QQ登录

只需一步,快速开始

楼主: gujiwubian

关于接收失败或者接收的消息长度为0的问题,急!

[复制链接]
发表于 2008-8-11 11:35:43 | 显示全部楼层
不好意思,之前看错了,以为是服务端的代码
异步读写,一方如果不反应,就会等待,而不会产生complete event并调用handle_*。如果对方断开,肯定是返回,且result状态为失败(也可能受到数据为0)。
现在的代码发生了complete event,那么如果失败或者为0,肯定是对方断开了。如果是对方还没有反应,异步读是一直等下去的,直到成功或者异常,发生complete。
 楼主| 发表于 2008-8-11 14:12:15 | 显示全部楼层
急啊!!!!!!!!:Q :Q :Q :Q :Q :Q :Q
 楼主| 发表于 2008-8-11 14:13:50 | 显示全部楼层
呵呵,我还纳闷呢。。。。恩,听你说的我好像有点明白了,我再看看吧,有什么不会的,再来问你了,谢谢:lol
 楼主| 发表于 2008-8-11 17:59:53 | 显示全部楼层
接收成功,但是接收到的数据大小为0!不知道为什么!!!!疯了:Q :Q :Q
 楼主| 发表于 2008-8-11 18:15:20 | 显示全部楼层
我想问一下,如果是服务器先断开了,那么客户端的接收是否成功和接收到的数据大小这两个数据会是什么样的??
发表于 2008-8-11 19:55:00 | 显示全部楼层
对方主动断开应该是返回失败吧
什么情况下会返回成功但收到数据大小为0我也没搞清楚,应该要看源码了
 楼主| 发表于 2008-8-11 23:00:03 | 显示全部楼层
恩,谢谢你了,可惜问题还是没解决。。。。痛苦啊!
发表于 2008-8-13 22:30:28 | 显示全部楼层
看了下源程序,ACE的异步I/O封装的是OS的异步I/O API,所以result.bytes_transferred ()就是OS的返回结果,比如windows下的ReadFile(),unix下的aio_read()。具体什么情况下返回0就要看OS关于该API的的文档了。

[ 本帖最后由 wishel 于 2008-8-13 22:31 编辑 ]
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

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

GMT+8, 2024-12-23 18:09 , Processed in 0.020228 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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