0%

文件描述符就绪条件

用作备忘提醒。

1. socket可读事件

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

2. socket可写事件

1)socket内核发送缓冲区中的可用字节数大于或等于其低水位标记SO_SNDLOWAT。此时可以无阻塞的写该socket,并且写操作返回的字节数大于0
2)socket的写操作被关闭。对写操作被关闭的socket执行写操作将处罚一个SIGPIPE的信号
3)socket使用非阻塞connect连接成功或失败(超时)之后
4)socket上有未处理的错误,可以用getsockopt来读取和清除该错误

3. select能处理的异常事件

1) socket上接收带外数据


参考:《linux高性能服务器编程》