IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> I/O复用(poll、select) -> 正文阅读

[系统运维]I/O复用(poll、select)

复用是什么?
顾名思义,复用就是一个进程多个作用。与单片机的IO口复用类似。

什么情况下要用I/O复用?
以下例举几种情况:
1、当客户机处理多个描述符时,必须使用I/O复用。
2、TCP服务器既要处理监听套接字,又要处理已连接套接字。
3、一个服务器既要处理TCP,又要处理UDP。
等等。。

如何实现复用?下面介绍两个常用的函数:
1、select函数
该函数允许进程指示内核等待多个事件中的任何一个发生,并只在有一个或多个事件发生或经历一段指定的时间后才唤醒它。支持的描述符数量默认是1024
函数原型:

int select(int maxfdpl,fd_set *readset,fd_set *writeset,fd_set *exceptest,const struct timeval *timeout);

参数:
maxfdpl:指定待测试的描述符个数,它的值是待测试的最大描述符加1,描述符0,1,2…一直到maxfdpl-1将被测试。
readset,writeset,exceptest指定我们要让内核测试读、写和异常条件的描述符。
如何给这3个参数中的每一个参数指定一个或多个描述符值是一个设计上的问题。select使用描述符集,通常是一个整数数组,其中每个整数中的每一位对应一个描述符。对于这三个参数,如果我们对某一个的条件不感兴趣,就可以把它设为空指针。
timeout:它告知内核等待所指定描述符中的任何一个就绪可花多长时间。

返回值:所监听的所以监听集合中(三种)就绪的总数,若超时则为0,出错则为-1。

2、poll函数
poll提供的功能与select类似,不过在处理流设备时,它能够提供额外的信息。再就是poll没有描述符的数量限制
函数原型:

int poll(struct pollfd *fdarray,unsigned long nfds,int timeout);

参数:
fdarray:指向一个结构数组第一个元素的指针。每个数组元素都是一个pollfd结构,用于指定测试某个给定描述符fd的条件。

struct pollfd{
int fd;
short events;
short revents;
}

nfds:参数一数组中元素的个数。
timeout:指定poll函数返回前等待多长时间,是一个指定应等待毫秒数的正值。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-02-14 21:37:00  更:2022-02-14 21:38:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 5:28:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码