wishel 发表于 2008-8-11 11:35:43

不好意思,之前看错了,以为是服务端的代码
异步读写,一方如果不反应,就会等待,而不会产生complete event并调用handle_*。如果对方断开,肯定是返回,且result状态为失败(也可能受到数据为0)。
现在的代码发生了complete event,那么如果失败或者为0,肯定是对方断开了。如果是对方还没有反应,异步读是一直等下去的,直到成功或者异常,发生complete。

gujiwubian 发表于 2008-8-11 14:12:15

急啊!!!!!!!!:Q :Q :Q :Q :Q :Q :Q

gujiwubian 发表于 2008-8-11 14:13:50

呵呵,我还纳闷呢。。。。恩,听你说的我好像有点明白了,我再看看吧,有什么不会的,再来问你了,谢谢:lol

gujiwubian 发表于 2008-8-11 17:59:53

接收成功,但是接收到的数据大小为0!不知道为什么!!!!疯了:Q :Q :Q

gujiwubian 发表于 2008-8-11 18:15:20

我想问一下,如果是服务器先断开了,那么客户端的接收是否成功和接收到的数据大小这两个数据会是什么样的??

wishel 发表于 2008-8-11 19:55:00

对方主动断开应该是返回失败吧
什么情况下会返回成功但收到数据大小为0我也没搞清楚,应该要看源码了

gujiwubian 发表于 2008-8-11 23:00:03

恩,谢谢你了,可惜问题还是没解决。。。。痛苦啊!

wishel 发表于 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 编辑 ]
页: 1 [2]
查看完整版本: 关于接收失败或者接收的消息长度为0的问题,急!