在网络编程中,下列情况socket可读:
1,socket内核缓存区中字节数大于或等于其低水位标记SO_RCVLOWAT。
2,socket通信的对方关闭连接。此时对该socket的读操作将返回0.
3,监听socket上有新的连接请求。
4,socket上有未处理的错误。
下列情况socket可写:
1,socket内核缓存区中的可用字节数大于或等于其低水位标记SO_SNDLOWAT。
2,socket的写操作被关闭(即:往一个读端关闭的socket连接中写数据)。对写操作被关闭的socket执行写操作将触发一个SIGPIPE信号。
3,socket使用非阻塞connect连接成功或失败(超时)之后。
4,socket上有未处理的错误。
以poll为例,当管道的读端关闭时,写端文件描述符上的POLLHUP事件将被触发;当socket连接被对方关闭时,socket上的POLLRDHUP事件将被触发。
阅读(3444) | 评论(0) | 转发(0) |