用作备忘提醒。
1. socket可读事件
- 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高性能服务器编程》