peakzhang 发表于 2007-12-18 19:22:33

一个很cheep的问题

ACE_SOCK_Stream::recv_n(......)==0跟
ACE_SOCK_Stream::recv_n(......)==-1
的区别是什么啊
谢谢回答

peakzhang 发表于 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的连接意外中断的时候发生的结果。

不知道对你有无参考价值。
页: [1]
查看完整版本: 一个很cheep的问题