首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

UNP_1_Chapter 6_select_pool

2012-12-20 
UNP_1_Chapter 6__select_poolhttp://blog.csdn.net/wbczyh/archive/2008/02/21/2111880.aspxIO事件、定时

UNP_1_Chapter 6__select_pool
http://blog.csdn.net/wbczyh/archive/2008/02/21/2111880.aspx
IO事件、定时器事件、信号事件


服务器TCP正确地给客户TCP发送一个FIN,
但客户进程阻塞于从标准输入中读入,此时它将看不到这个EOF。

此时需要一种预先告知内核的能力,内核一旦发现进程指定的I/O条件就绪,就通知进程。
I/O复用可由select和poll函数支持。

I/O复用场景:
1、客户处理多个描述符;
2、处理多个socket;
3、TCP服务器,即监听socket,又处理已连接的socket;
4、使用TCP,又要使用UDP;
5、处理多个服务或协议;


五种I/O模型:
1、阻塞式,blocking
2、非阻塞式,non blocking,轮询(polling)
3、I/O复用,multiplexing,回调类机制
4、信号驱动,signal-driven,非阻塞、回调类机制。信号在数据准备好后回调
5、异步I/O,asynchronous,与4相同,只是信号在数据复制后回调
前四种,I/O操作时,将请求进程阻塞。P127 6-6图



void FD_ZERO(fd_set *fdset);          //文件描述符集清空,必须对其进行初始化void FD_SET  (int fd, fd_set *fdset); //增加一个新的文件描述符void FD_CLR  (int fd, fd_set *fdset); //删除一个文件描述符int  FD_ISSET(int fd, fd_set *fdset); //判断文件描述符是否在该集合中

热点排行