关于recv的返回值
2024-09-07 16:43:02
通常recv有几种返回值
1.==0
表示收到FIN包, 因为FIN包,是状态为标记为FIN的空包,没有携带数据,所以recv的长度为0
2.>0
表示收到了数据, 但是有没有收完,是不知道的
3.<0
1) == EAGAIN 表示接收缓冲区中已经没数据了,需要暂停下,业务程序需要检查下包的完整性,才知道有没有收完,如果没收完,就继续recv
2) != EAGAIN 表示接收出错了,如果是服务端, 就可以直接关闭连接了.
切记收到FIN包后,准备关闭连接前,一定要处理完接收缓冲区中的数据。
最新文章
- 前端er是否忽略了某些东西?——读《ppk谈JavaScript》
- viewPager--viewpager时,发生内存溢出OOM问题
- Linux命令总结【待续】
- 匿名内部类为什么访问外部类局部变量必须是final的?
- 我的android学习经历39
- java多线程学习-同步之线程通信
- Android ListView ListActivity PreferenceActivity背景变黑的问题ZT
- nyoj 55 懒省事的小明 优先队列 multiset 还有暴力
- 使用异步HTTP提升客户端性能(HttpAsyncClient)
- R中用黏贴板读取excel数据以及用R生成人名
- com.alibaba.druid.sql.parser.ParserException: syntax error, QUES %, pos 80 like报错解决
- 在C++遇到有些关键字或者函数被弃用的情况
- 【学习笔记】TensorFlow
- UML第一次作业
- webpack4 系列教程: 前言
- 若sql语句中order by指定了多个字段,怎么排序?
- 同种类型不同名字的变量在for循环中操作
- python+requests实现接口测试 - cookies的使用 (转载)
- Hive(六)内置函数与高级操作
- 3D几何图形生成的DEMO
热门文章
- EMQ (Erlang/Enterprise/Elastic MQTT Broker)
- Hadoop体系结构之 Yarn
- CSS冷门但有用的知识整合
- dubbox部署到jdk1.7环境,启动:java.lang.NoSuchMethodError: java.util.concurrent.ConcurrentHashMap.keySet()
- CentOS 7 Update GCC G++
- awk 内容
- Source Insight中文字体设置
- debian下ror新建项目报错解决
- lnmp centos7 memcache服务器端 和 memcache memcached扩展的安装
- 使用wireshark观察SSL/TLS握手过程--双向认证/单向认证