一.关于poll对于IO复用模型,其优点无疑是免去了对一个个IO事件就绪的等待,转而代之的是同时对多个IO数据的检测,当检测等待的事件中至少有一个就绪的时候,就会返回告诉用户进程“已经有数据准备好了,快看看是哪个赶紧处理”,而对于IO复用的实现,除了可以用select函数,另..
分类:
其他好文 时间:
2016-05-28 23:28:27
阅读次数:
498
poll提供的功能与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,但poll比select的优点是,不限制所能监视的描述符的数目,但随着所监视描述符的数目的增加,性能也会下降函数原型:#include<poll.h>intpoll(structpollfd*fds,nfds_tnfds,inttim..
分类:
其他好文 时间:
2016-05-28 06:42:57
阅读次数:
130
epoll是linux内核为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。另一点原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核IO事件..
分类:
其他好文 时间:
2016-05-27 18:45:54
阅读次数:
325
poll使用一个结构体指针代替select中读事件、写事件及异常事件。结构体组成:events(请求事件)关心该文件描述符的什么事件所关心的事件有:poll函数原型:intpoll(structpollfd*fds,nfds_tnfds,inttimeout)fds:为一个structpollfd结构体类型的数组,存放要检测其状态的sock..
分类:
其他好文 时间:
2016-05-27 18:43:47
阅读次数:
256
select:系统提供select函数来实现多路复用输入/输出模型。select系统调用是用来让我们的程序监视多个文件句柄的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有一个或多个发生了状态改变。关于文件句柄,其实就是一个整数,我们最熟悉的句柄是0、1、2三个,0是..
分类:
其他好文 时间:
2016-05-27 07:09:47
阅读次数:
197
系统提供select函数来实现多路复用输入/输出模型。select函数让我们的程序监视多个文件描述符的状态变化。程序会停在select这里等待,直到被监视的文件描述符中有一个或多个发生了状态变化函数原型如下:返回值:成功返回就绪描述符的个数,超过timeout时间且没有任何事件发生..
分类:
其他好文 时间:
2016-05-26 22:12:53
阅读次数:
292
1.分层的体系结构: 对等协议:每一层都是一些明确定义的相互作用的集合 接口协议:层之间的界限是另外一些相互作用的集合 2.用户与远程应用程序通信的过程: 终端用户->协议转换->会话管理->寻址,路由,分组->数据链路控制->调制和解调->本地交换,多路复用->公共载波传输,交换,多路复用->本地 ...
分类:
其他好文 时间:
2016-05-26 20:23:41
阅读次数:
200
I/O模型Unix下共有五种I/O模型:1>:阻塞I/O2>:非阻塞I/O3>:I/O多路复用4>:信号驱动I/O5>:异步I/O其中前四种是同步I/O模型,只有第五种是异步的。同步与异步:这里的同步和两个实体之间通信中的同步的概念是不一样的,这里的同步是指关于这个I/O中的一系列动作都..
分类:
其他好文 时间:
2016-05-26 19:09:42
阅读次数:
237
其实在之前的TCP之中,我们编程实现了多进程,多线程机制下的TCP服务器,但是对于这种的TCP服务器而言,存在太大的资源局限性。所以我们可以是用I/0模型中的多路复用I/O模型来进行编程。他的具体思想就是:当前进程可以处理多个相应时间,记录多个描述符,然后控制轮询时间态,..
分类:
其他好文 时间:
2016-05-25 19:09:03
阅读次数:
694
系统提供select函数来实现多路复用输入/输出模型。select系统调用是用来让我们的程序监视多个文件句柄的状态变化的。select:该函数允许进程指示内核等待多个事件中的任何一个发生,并只在有一个或多个事件发生或经历一段指定的时间后才唤醒它。参数含义:timeout:它告知内核等..
分类:
其他好文 时间:
2016-05-25 15:22:20
阅读次数:
158