recv函数的返回值梳理
默认 socket 是阻塞的 解阻塞与非阻塞recv返回值没有区分,都是 <0 出错; =0 连接关闭; >0 接收到数据大小;
特别:
- 只是阻塞模式下recv会阻塞着接收数据,非阻塞模式下如果没有数据会返回,不会阻塞着读,因此需要循环读取。
返回说明:
- 成功执行时,返回接收到的字节数;
- 另一端已关闭则返回0;
- 失败返回-1;
- 返回值<0时并且(errno == EINTR || errno == EWOULDBLOCK || errno == EAGAIN)的情况下认为连接是正常的,继续接收。
printf("======== START READ ========");
recv(socketHandle, buff, 4*1024, 0);
printf("======== END READ ========");
//4*1024 表示一次性读取的最大字节数
//打印信息,开始收到接收完需要343ms,很可能在的时候,对端正在写;
//[03Jan20 21:54:35:998] 222258,0548,level:06,-======== START READ ========
//[03Jan20 21:54:36:341] 222258,0549,level:06,-======== END READ ========
recv函数的返回值梳理相关推荐
- c语言recv函数返回值,谈谈recv()函数的返回值
网上某论坛有这样一个问题:当recv()函数的返回值为0时,能不能在接收端不关闭套接字,以便这条建立好的C/S通信下次可以直接使用? 我对这个问题的回答是:不能. 原因是:此时即使接收端不关闭套接字, ...
- 非阻塞模式下 SEND 和 RECV 函数的返回值总结
send 和 recv 函数的各种返回值意义: 返回值 n 返回值含义 大于 0 成功发送 n 个字节 0 对端关闭连接 小于 0( -1) 出错或者被信号中断或者对端 TCP 窗口太小数据发不出去( ...
- wpf 窗口的返回值_如何:获取页函数的返回值
如何:获取页函数的返回值How to: Get the Return Value of a Page Function 03/30/2017 本文内容 本示例显示如何获取页函数的返回值.This ex ...
- getchar()函数的返回值赋给char型,用if(ch=getchar() != EOF)测试,输入ctrl+z同样可以结束循环的分析...
2013-07-18 21:35:58 getchar()函数的返回值赋给char型,用if(ch=getchar() != EOF)测试,输入ctrl+z同样可以结束循环的分析. char是字符型数 ...
- ajax回调函数的返回值,使用ajax和回调函数向函数传递/返回值
我试图读p_info函数返回从函数getproductInfo包含ajax调用,但我得到未定义的值.我使用回调函数来实现这一点,但仍然无法正常工作.我错在哪里?使用ajax和回调函数向函数传递/返回值 ...
- Long类型传到前端失去精度(2):Long类型不是实体类的某一个字段,Long类型是一个函数的返回值
Long类型传到前端失去精度(2):Long类型不是实体类的某一个字段,Long类型是一个函数的返回值 又是转换Mybatis-Plus的一天,又遇到了之前熟悉的问题:Long类型传到前端失去精度.可 ...
- C++知识点8——函数的返回值
函数的返回值不能是数组或函数,但是可以是是数组和函数的指针或引用 函数返回一个值的过程和初始化完全一致,先创建一个临时变量,用返回值初始化该临时变量,然后用该临时变量去初始化另一个变量或者给另一个变量 ...
- 函数的初识;函数的返回值;函数的传参
函数的初识: 避免重复代码,增强可读性. 函数是以功能为导向的. def 函数名(形参): 函数体 函数名() 实参 def 关键字 函数名(与变量命名规则一样) 1.由数字字母下划线组成 2.不能由 ...
- Swift2.0语言教程之函数的返回值与函数类型
Swift2.0语言教程之函数的返回值与函数类型 Swift2.0中函数的返回值 根据是否具有返回值,函数可以分为无返回值函数和有返回值函数.以下将会对这两种函数类型进行讲解. Swift2.0中具有 ...
- Python基本语法_函数_返回值
目录 目录 前言 函数的返回值 在函数中Return和Print的区别 函数中的文档 前言 函数的返回值是函数重要的组成部分.函数的根本在于实现程序的部分功能,所以很多时候我们需要将函数执行后的结果返 ...
最新文章
- 基于 Webpack 3 的 React 工程项目脚手架
- 非常好!!!---bash转义序列笔记---打印语句printf用法【转】
- linux docker 报错 Failed to get D-Bus connection: Operation not permitted
- Firefox 网络调试工具
- 正则表达式 小结 经典解决方案[1]
- sql server中的decimal或者numeric的精度问题 (转载)
- 企业级控件库之大数据量分页控件 (非原创)
- xp系统web服务器搭建教程,Windows_XP配置WEB服务器教程(图)
- 如何将iPhone应用程序从应用程序库移动到主屏幕
- ANSIBLE--handlers的概念
- 拦截导弹(信息学奥赛一本通-T1289)
- 地震勘探专业词汇(1)
- oracle条件批量更新表数据
- P2604 [ZJOI2010]网络扩容
- 质疑“扩版=质量下降”——以《中国农学通报》和《安徽农业科学》为例
- linux环境systwm.img解包,[教程] system.img解包打包的方法,方便菜鸟们制作直刷ROM...
- 智能语音市场有多大? 阿里巴巴将如何破局后来者居上?
- ValueError: This sheet is too large! Your sheet size
- 光猫需要已经开通了 telnet 功能
- ModuleNotFoundError: No module named 'pytz'