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时,不会再通知该事件


浙公网安备 33010602011771号