首页 > 其他 > 详细

关于recv的返回值

时间:2016-04-22 16:05:20      阅读:169      评论:0      收藏:0      [点我收藏+]

通常recv有几种返回值

1.==0

表示收到FIN包, 因为FIN包,是状态为标记为FIN的空包,没有携带数据,所以recv的长度为0

2.>0 

表示收到了数据, 但是有没有收完,是不知道的

3.<0

1) == EAGAIN  表示接收缓冲区中已经没数据了,需要暂停下,业务程序需要检查下包的完整性,才知道有没有收完,如果没收完,就继续recv

2) != EAGAIN  表示接收出错了,如果是服务端, 就可以直接关闭连接了.

 

切记收到FIN包后,准备关闭连接前,一定要处理完接收缓冲区中的数据。

关于recv的返回值

原文:http://www.cnblogs.com/ctrlzhang/p/5421297.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!