I/O事件

下列情况socket可读:

  1. socket内核接收缓存区中的字节数大于或者等于其低水位标记SO_RCVLOWAT。此时我们可以无阻塞地读该socket,并且读操作将返回的字节数大于0。
  2. socket通信的对方关闭连接。此时对该socket的读操作将返回0。
  3. 监听socket上有新的连接请求。
  4. socket上有未处理的错误。此时我们可以使用getsockopt来读取和清除错误

下列情况socket可写:

  1. socket内核发送缓冲区中的可用字节数大于或者等于其低水位标记SO_SNDLOWAT。
  2. socket的写操作被关闭。对写操作被关闭的socket执行写操作将处罚一个SIGPIPE信号。
  3. socket使用非阻塞connect连接成功或者失败(超时)之后。
  4. socket上有未处理的错误。此时我们可以使用getsockopt来读取和清除该错误。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • iPhone的标准推荐是CFNetwork 库编程,其封装好的开源库是 cocoa AsyncSocket库,用它...
    Ethan_Struggle阅读 2,283评论 2 12
  • 18.1 引言 TCP是一个面向连接的协议。无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。本章将...
    张芳涛阅读 3,432评论 0 13
  • 一、网络各个协议:TCP/IP、SOCKET、HTTP等 网络七层由下往上分别为物理层、数据链路层、网络层、传输层...
    杯水救车薪阅读 2,305评论 0 17
  • 每一个人都有失恋的时候,而每一次我失恋呢,我就要去跑步,因为跑步可以将你身体里面的水分蒸发掉,而让我不那么容易流泪...
    祝孜孜阅读 1,643评论 3 7
  • 以前上高中时候我总想着大学有多么多么么的美好,没有老师管,自己可以自由自在,没有那么多作业,也没有那么多烦恼,大学...
    庄德坤阅读 202评论 0 0