转自:http://blog.chinaunix.net/uid-25885064-id-3067050.html

Linux - 非阻塞socket编程处理EAGAIN错误

在linux进行非阻塞的socket接收数据时经常出现Resource temporarily unavailable,errno代码为11(EAGAIN),这表明你在非阻塞模式下调用了阻塞操作,在该操作没有完成就返回这个错误,这个错误不会破坏socket的同步,不用管它,下次循环接着recv就可以。 对非阻塞socket而言,EAGAIN不是一种错误。在VxWorks和Windows上,EAGAIN的名字叫做EWOULDBLOCK。

另外,如果出现EINTR即errno为4,错误描述Interrupted system call,操作也应该继续。

最后,如果recv的返回值为0,那表明连接已经断开,我们的接收操作也应该结束。

Linux socket EAGAIN相关推荐

  1. About AF_NETLINK in Linux Socket

    About AF_NETLINK in Linux Socket 由于开发和维护内核的复杂性,只把最为关键同时对性能要求最高的代码放进内核中.其他的诸如GUI,管理和控制代码,通常放在用户空间运行.这 ...

  2. Linux Socket基础介绍

    Linux Socket函数库是从Berkeley大学开发的BSD UNIX系统中移植过来的.BSD Socket接口是众多Unix系统中被广泛支持的TCP/IP通信接口,Linux下的Socket程 ...

  3. python封装api linux_python Socket编程-python API 与 Linux Socket API之间的关系

    python socket编程 by SA19225409 地址协议家族 Python 支持 AF_UNIX. AF_NETLINK. AF_TIPC 和 AF_INET 家族 AF_UNIX 基于本 ...

  4. linux socket关闭连接 shutdown与close

    在Linux socket关闭连接的方法有两种分别是shutdown和close,首先看一下shutdown的定义 #include<sys/socket.h>int shutdown(i ...

  5. Linux socket关闭连接shutdown与close

    在Linux socket关闭连接的方法有两种分别是shutdown和close,首先看一下shutdown的定义 #include<sys/socket.h> int shutdown( ...

  6. linux socket使用情况 ss -s ss -t -a | cat /proc/net/socketstat

    linux socket使用情况 ss -s ss -t -a | cat /proc/net/socketstat Linux系统中,查看SOCKET使用情况可以使用ss命令. 1.命令格式: ss ...

  7. 对于linux socket与epoll配合相关的一些心得记录

    对于linux socket与epoll配合相关的一些心得记录 没有多少高深的东西,全当记录,虽然简单,但是没有做过测试还是挺容易让人糊涂的 int nRecvBuf=32*1024;//设置为32K ...

  8. linux 查看socket fd,linux socket中select()函数以及FD_ZERO FD_SET FD_CLR FD_ISSET

    linux socket非阻塞编程时常见到如下的code: socket   s; ..... fd_set   set; ..... struct timeval tv; while(1) { FD ...

  9. linux socket高性能服务器处理框架

    这个博客很多东西 http://blog.csdn.net/luozhonghua2014/article/details/37041765 思考一种高性能的服务器处理框架 1.首先需要一个内存池,目 ...

最新文章

  1. 怎么彻底删除电脑上的软件_你的电脑有救了:1 个神器几个进阶方法彻底删除流氓软件!...
  2. 认识下PHP如何使用 phpmailer 发送电子邮件
  3. 1.3.2 向量化实现浅层神经网络
  4. LVS-NAT搭建HTTP及HTTPS
  5. 金山云html文件,金山云安全开放平台
  6. how is my Angular custom controller code executed
  7. 洛谷 P2040 打开所有的灯-dfs
  8. python201811210作业4
  9. MySQL-5.7.22-winx64安装
  10. 巴菲特2021年致股东信披露重仓股名单
  11. 今年的大环境很差,创业失败的和失去工作的特别多
  12. Java获取接口所有实现类的方式
  13. A5如何备份oracle数据库,oracle的数据库的导入导出
  14. linux通配符与正则表达式
  15. STM32F103系列选型
  16. vs2010解决方案源文件夹和头文件夹消失
  17. 探讨基于球谐函数的全局光照
  18. 线性调频(LFM信号)脉冲压缩雷达matlab仿真- 脉冲压缩 测距 测速 距离速度三维像(附matlab代码)
  19. gitgub常用按钮说明
  20. ASP.NET Repeater控件使用方法

热门文章

  1. windows启动NTP服务器详细步骤
  2. 非特定人脱机手写汉字识别
  3. 想知道PDF转高清图片软件哪个好?
  4. 湖北省科技进步奖申报16地市政策汇编(2023年申报条件、奖励补贴)
  5. consul--基础--03--配置参数
  6. Office邮箱的黑白名单的创建
  7. 决策树——预剪枝和后剪枝
  8. 常见的运行时异常。(Java)
  9. ●●教你如何在鼠标右键中添加excel,word,ppt的快捷方式
  10. 全媒体运营师胡耀文教你:完美的活动策划方案,不可缺少的元素