非阻塞模式下 recv()函数的返回值

Linux兵工厂 2013-08-06 10:39:49
设置非阻塞模式,在没有数据到来时,recv()返回值是什么?返回-1还是返回0?
...全文
341 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Linux兵工厂 2013-08-07
  • 打赏
  • 举报
回复
ok!明白了,谢谢楼上的
木头菇 2013-08-07
  • 打赏
  • 举报
回复
引用 4 楼 spirit008 的回复:
[quote=引用 3 楼 tgdzsjh 的回复:] 阻塞模式,设置了socket的接收超时时间,如果超时了,recv()返回值是多少? [quote=引用 2 楼 spirit008 的回复:] [quote=引用 1 楼 leiqi 的回复:] 返回0一般是表示超时,也可能返回其他负值,具体要看你所用的socket的实现。 不同平台下的socket是不一样的
recv的返回0永远表示链接关闭。[/quote][/quote] If no error occurs, recv returns the number of bytes received. If the connection has been gracefully closed, the return value is zero. Otherwise, a value of SOCKET_ERROR is returned, and a specific error code can be retrieved by calling WSAGetLastError. recv只有0和-1的返回值,这msdn上不是都有。链接优雅关闭是0,其他一切都是靠last error判断[/quote] >0都是有数据
木头菇 2013-08-07
  • 打赏
  • 举报
回复
引用 3 楼 tgdzsjh 的回复:
阻塞模式,设置了socket的接收超时时间,如果超时了,recv()返回值是多少? [quote=引用 2 楼 spirit008 的回复:] [quote=引用 1 楼 leiqi 的回复:] 返回0一般是表示超时,也可能返回其他负值,具体要看你所用的socket的实现。 不同平台下的socket是不一样的
recv的返回0永远表示链接关闭。[/quote][/quote] If no error occurs, recv returns the number of bytes received. If the connection has been gracefully closed, the return value is zero. Otherwise, a value of SOCKET_ERROR is returned, and a specific error code can be retrieved by calling WSAGetLastError. recv只有0和-1的返回值,这msdn上不是都有。链接优雅关闭是0,其他一切都是靠last error判断
Linux兵工厂 2013-08-06
  • 打赏
  • 举报
回复
阻塞模式,设置了socket的接收超时时间,如果超时了,recv()返回值是多少?
引用 2 楼 spirit008 的回复:
[quote=引用 1 楼 leiqi 的回复:] 返回0一般是表示超时,也可能返回其他负值,具体要看你所用的socket的实现。 不同平台下的socket是不一样的
recv的返回0永远表示链接关闭。[/quote]
木头菇 2013-08-06
  • 打赏
  • 举报
回复
引用 1 楼 leiqi 的回复:
返回0一般是表示超时,也可能返回其他负值,具体要看你所用的socket的实现。 不同平台下的socket是不一样的
recv的返回0永远表示链接关闭。
DeltaGo 2013-08-06
  • 打赏
  • 举报
回复
返回0一般是表示超时,也可能返回其他负值,具体要看你所用的socket的实现。 不同平台下的socket是不一样的

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧