通常recv有几种返回值

1.==0

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

2.>0

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

3.<0

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

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

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

最新文章

  1. 前端er是否忽略了某些东西?——读《ppk谈JavaScript》
  2. viewPager--viewpager时,发生内存溢出OOM问题
  3. Linux命令总结【待续】
  4. 匿名内部类为什么访问外部类局部变量必须是final的?
  5. 我的android学习经历39
  6. java多线程学习-同步之线程通信
  7. Android ListView ListActivity PreferenceActivity背景变黑的问题ZT
  8. nyoj 55 懒省事的小明 优先队列 multiset 还有暴力
  9. 使用异步HTTP提升客户端性能(HttpAsyncClient)
  10. R中用黏贴板读取excel数据以及用R生成人名
  11. com.alibaba.druid.sql.parser.ParserException: syntax error, QUES %, pos 80 like报错解决
  12. 在C++遇到有些关键字或者函数被弃用的情况
  13. 【学习笔记】TensorFlow
  14. UML第一次作业
  15. webpack4 系列教程: 前言
  16. 若sql语句中order by指定了多个字段,怎么排序?
  17. 同种类型不同名字的变量在for循环中操作
  18. python+requests实现接口测试 - cookies的使用 (转载)
  19. Hive(六)内置函数与高级操作
  20. 3D几何图形生成的DEMO

热门文章

  1. EMQ (Erlang/Enterprise/Elastic MQTT Broker)
  2. Hadoop体系结构之 Yarn
  3. CSS冷门但有用的知识整合
  4. dubbox部署到jdk1.7环境,启动:java.lang.NoSuchMethodError: java.util.concurrent.ConcurrentHashMap.keySet()
  5. CentOS 7 Update GCC G++
  6. awk 内容
  7. Source Insight中文字体设置
  8. debian下ror新建项目报错解决
  9. lnmp centos7 memcache服务器端 和 memcache memcached扩展的安装
  10. 使用wireshark观察SSL/TLS握手过程--双向认证/单向认证