今天在调试程序的时候发现,客户端调用closesocket时,服务器应该会返回SOCKET_ERROR,实际上Debug版本是这样,但Release版本并不是。相同的代码Debug返回了-1,Release返回了0。

通过看msdn的原文可以发现:

If no error occurs, recv returns the number of bytes received and the buffer pointed to by the buf parameter will contain this data received. If the connection has been gracefully closed, the return value is zero.Otherwise, a value of SOCKET_ERROR is returned

意思是:如果没有错误,将返回接收到的字节数。如果优雅的关闭了套接字,会返回0。否则返回SOCKET_ERROR,也就是-1。

所以在处理断线的时候判断返回值小于等于0即可。(而不是有些人写的判断等于SOCKET_ERROR)

WinSock的recv返回值处理相关推荐

  1. linux recv 返回值与linux socket 错误分析

    转载:http://blog.csdn.net/henry115/article/details/7054603 recv函数 int recv( SOCKET s, char FAR *buf, i ...

  2. linux recv返回值,recv recvfrom

    recv和recvfrom都是用来接受来自的网络的数据.来看看它们的原型: int recv( SOCKET, char FAR*, int, int ); int recvfrom( SOCKET, ...

  3. recv返回值为0_基于GNES和Tensorflow 2.0的大规模视频语义搜索

    BLOG ABOUT ARCHIVE SUBSCRIBE https://github.com/gnes-ai/gnes​github.com Background 项目背景 Nov 22, 2019 ...

  4. 关于socket阻塞与非阻塞情况下的recv、send、read、write返回值

    recv: 阻塞与非阻塞recv返回值没有区分,都是 <0:出错,=0:连接关闭,>0接收到数据大小, 特别:非阻塞模式下返回 值 <0时并且(errno == EINTR || e ...

  5. recv函数返回值说明

    recv函数 int recv( SOCKET s, char FAR *buf, int len, int flags); 不论是客户还是服务器应用程序都用recv函数从TCP连接的另一端接收数据. ...

  6. 非阻塞模式下 SEND 和 RECV 函数的返回值总结

    send 和 recv 函数的各种返回值意义: 返回值 n 返回值含义 大于 0 成功发送 n 个字节 0 对端关闭连接 小于 0( -1) 出错或者被信号中断或者对端 TCP 窗口太小数据发不出去( ...

  7. mysql linux 函数返回值_linux recv函数返回值分析

    函数原型: ssize_t recv(int sockfd, void *buf, size_t len, int flags); 该函数第一个参数制定接收端套接字描述符; 第二个参数指明一个缓冲区, ...

  8. socket传输结构体,c++,发送OK,recv返回字节大小正确但接受数据为空

    socket传输结构体,c++,发送OK,recv返回字节大小正确但接受数据为空 服务端在ubuntu服务器下,客户端在windows下,采用socket进行通信,在客户端接收数据时,出现了诡异的情况 ...

  9. c语言recv函数返回值,谈谈recv()函数的返回值

    网上某论坛有这样一个问题:当recv()函数的返回值为0时,能不能在接收端不关闭套接字,以便这条建立好的C/S通信下次可以直接使用? 我对这个问题的回答是:不能. 原因是:此时即使接收端不关闭套接字, ...

最新文章

  1. MySQL的explain简书_MySQL Explain
  2. 伺服驱动器的 三环控制 电流环 速度环 位置环
  3. webcrypto库下载_使用WebCrypto API的电子签名
  4. Java 运算符、表达式、语句
  5. Intel汇编语言程序设计学习笔记1
  6. 前端:CSS/11/CSS浮动和清除,CSS继承性,CSS优先级
  7. Ubuntu 15 周年!
  8. Httpclient gzip 乱码问题解决
  9. 电脑向linux板卡传文件,ARM 开发板嵌入式linux系统与主机PC通过串口传输文件
  10. Luogu2680 [NOIP2015 提高组] 运输计划
  11. 智能机器人_微分平坦与最小化加加加速度
  12. 老闪创业那些事儿(88)——上市的钟声响起
  13. NeoKylin7服务器操作系统安装
  14. 推动铅蓄电池绿色“转身”
  15. java 头像 微信群_Android仿微信群聊头像
  16. html创建一个四行三列表单,HTML(三)表格table与表单form的基本使用
  17. 国行switch服务器在维护中,国行Switch是否锁区锁服?你关心的问题都将在这里解答...
  18. GraphSAGE论文阅读笔记
  19. 系统分析师(一)软考简介
  20. 微信公众号网页授权登录完整步骤版学不会你打我....

热门文章

  1. 手机空间定位_你或许被默默定位很久了却不知情,盘点生活中各类定位技术
  2. 【机器学习算法专题(蓄力计划)】七、机器学习中数据的相关分析
  3. 2020 年最全 Python 面试题汇总 (一)
  4. 物理化学 化学 动力学(上)
  5. 计算机里硬盘图标,计算机中在硬盘图标下面有个其他里PPS图标肿么删?
  6. Numpy编写BP传播过程全解
  7. 百度发布全新桌面版机器学习开发环境,12月赠送免费GPU算力
  8. 它来了,它来了,最强目标检测算法YOLO v4,它真的来了!!!
  9. python list(str(x:str)) -> List
  10. php循环输出url,PHP 输出URL的快捷方式的实现方法