码迷,mamicode.com
首页 > 其他好文 > 详细

UNP学习第六章

时间:2018-02-12 18:53:10      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:style   cep   color   exce   数值   多个   eva   准备   pts   

一、I/O复用典型的网络应用场合

  • 当客户处理多个描述字时,必须使用I/O复用,这在前一段中已做了描述。
  • 一个客户同时处理多个套接口时可能的,但很少出现。
  • 如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口,一般也要用到I/O复用。
  • 如果一个服务器即要处理TCP,又要处理UDP。
  • 如果一个服务器要处理多个服务或者多个协议。

 

二、I/O模型

一个输入操作一般有两个不同的阶段:

1.等待数据准备好

2.从内核到进程拷贝数据

 

五个I/O模型基本区别:

  • 阻塞I/O

 

  • 非阻塞I/O模型

 

  • I/O复用模型

 

  • 信号驱动I/O模型

 

  • 异步I/O模型

 

三、select函数

#include <sys/select.h>
#include <sys/time.h>

int select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset
    const struct timeval *timeout);
返回:准备好描述字的正数目0超时,-1出错
maxfdp1:整数值,集合中所有文件描述符范围,所有文件描述符最大值+1
readset:指向一组等待可读性检查的套接口
writeset:指向一组等待可写性检查的套接口
exceptset:指向一组等待错误检查的套接口
timeout:select()最多等待时间,对阻塞操作则为NULL

timeout有三种可能:

1.永远等待下去:仅在有一个描述字准备好I/O时才返回,为此,我们将参数timeout设置为空指针

2.等待固定时间:再有一个描述字准备好I/O后返回,但不超过timeout

3.根本不等待:检查描述字后立即返回,这称为轮询。timeout指向0

 

UNP学习第六章

标签:style   cep   color   exce   数值   多个   eva   准备   pts   

原文地址:https://www.cnblogs.com/ch122633/p/8445114.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!