Chinaunix首页 | 论坛 | 博客
  • 博客访问: 50240
  • 博文数量: 11
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 90
  • 用 户 组: 普通用户
  • 注册时间: 2014-06-06 17:30
文章分类

全部博文(11)

文章存档

2014年(11)

我的朋友

分类: LINUX

2014-06-06 17:43:55

I/O多路复用:输入/输出多路复用

数据通信系统或计算机网络系统中,传输媒体的带宽或容量往往超过传输单一信号的需求,为了有效地利用通信线路,希望一个信道同时传输多路信号,这就是所谓的多路复用。

1.I/O复用的典型应用场合

 1、当客户处理多个描述字(通常是交互式输入和网络套接口)时,必须使用I/O复用。

 2、如果一个服务器要处理多个服务或者多个协议(例如既要处理TCP,又要处理UDP),一般就要使用I/O复用。

 

2.支持I/O复用的系统调用

     目前支持I/O复用的系统调用有selectpselectpollepoll

1select函数

     该函数允许进程指示内核等待多个事件中的任何一个发生,并仅在有一个或多个事件发生或经历一段指定的时间后才唤醒它。

采用select()函数实现I/O 多路复用的基本步骤如下:

1) 清空描述符集合

2) 建立需要监视的描述符与描述符集合的联系

3) 调用select()函数

4) 检查所有需要监视的描述符,利用FD_ISSET 判断是否准备好

5) 对已准备好的描述符进行I/O 操作

阅读(1600) | 评论(0) | 转发(0) |
0

上一篇:五种I/O模型

下一篇:Linux中select函数

给主人留下些什么吧!~~