找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 3600|回复: 1

一个很cheep的问题

[复制链接]
发表于 2007-12-18 19:22:33 | 显示全部楼层 |阅读模式
ACE_SOCK_Stream::recv_n(......)==0跟
ACE_SOCK_Stream::recv_n(......)==-1
的区别是什么啊
谢谢回答
 楼主| 发表于 2007-12-18 19:22:40 | 显示全部楼层
ACE_SOCK_Stream的注释中这么说的:

* The return values for the "*_n()" methods match the return values
* from the non "_n()" methods and are specified as follows:
* - On complete transfer, the number of bytes transferred is returned.
* - On timeout, -1 is returned, errno == ETIME.
* - On error, -1 is returned, errno is set to appropriate error.
* - On EOF, 0 is returned, errno is irrelevant.

那么问题是error和EOF的区别是什么?

偶查了一下,EOF是对方socket正常关闭需要向对端发送的一个FIN,这样的结果反映在接收端就是收到结束的信号,但是却没有可用的数据。

而error应该是在socket的连接意外中断的时候发生的结果。

不知道对你有无参考价值。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

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

GMT+8, 2024-5-20 15:54 , Processed in 0.019849 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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