IO复用简介

使用情况:

1.客户端程序要同时处理多个Socket

2.客户端程序要同时处理用户输入和网络连接

3.TCP服务器要同时处理监听Socket和连接Socket

4.服务器要同时处理TCP请求和UDP请求

5.服务器同时监听多个端口

 

1.select

在一段时间内,监听用户感兴趣的可读、可写、异常事件

socke可读:

1.socket内核接收缓冲区的字节数大于低水位标记,读操作返回字节数大于0

2.socket对端关闭连接,读操作返回字节数为0

3.监听socket有新的连接请求

4.socket上有为处理的错误

socket可写:

1.socket内核发送缓冲区的可用字节数大于低水位标记,写操作返回字节数大于0

2.socket写操作关闭

3.socket使用非阻塞connet连接成功或失败后

4.socket上有未处理的错误

2.poll

与slect类似

3.epoll

LT:当有事件发生时,应用程序可以不立即处理该事件,下一次调用时epoll_wait时,还会再次通知该事件

ET:当有事件发生时,应用程序应立即处理该事件,因为后续调用epoll_wait时,不会再通知该事件

 

posted @ 2021-02-27 17:01  zzlj  阅读(102)  评论(0)    收藏  举报