第6章:I/O复用:select和poll函数
来源:互联网 发布:女友养成游戏 知乎 编辑:程序博客网 时间:2024/05/02 00:43
如果一个或多个I/O条件满足,我们可以被通知到。
场合:
1. 当客户处理多个描述字时
2. 一个客户同时处理多个套接口
3. 一个tcp服务器既要处理监听套接口,又要处理已连接的套接口
4. 一个服务器既要处理tcp, 又要处理UDP
5. 一个服务器要处理多个服务或者多个协议
I/O模型:
l 阻塞
l 非阻塞
l 信号驱动
l 异步
l I/O复用
<sys/select.h> <sys/time.h>
int select( int maxfdp, fd_set *readset, fd_set *writeset, fd_set * exceptset, const struct timeval *timeout);
返回准备好描述字的整数,0超时,-1出错
struct timeval{
long tv_sec; // seconds
long tv_usec; //microseconds
}
当timeout为空时可能永远等待下去
当他为0时,不等待
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);
<stdio.h>
int fileno( FILE *stream);返回文件流使用的文件描述符
接受和发送低潮限度目的:在select返回可读或可写条件之前,应用进程可以对多少数据可读或多大空间可写进行控制。
批量输入:当发送多个请求后,客户端关闭,但有一些请求在去往服务器的路上,如果这时关闭则不能读取到服务器返回的数据,需要半关闭。即客户端发送一个FIN通知服务器端我数据发送完毕,但仍为读放开套接口描述字。需要函数shutdown
<sys/socket.h>
int shutdown( int sockfd, int howto) 0成功,-1出错
hwoto取值:
SHUT_RD 关闭连接的读这一半,不接受套接口数据,且现留在套接口缓冲区数据作废
SHUT_WR 关闭连接写这一半,半关闭,缓冲区数据都被发送,。
SHUT_RDWR 等效于调用shutdown两次,调用_RD,和_WR
<sys/select.h> <signal.h> <time.h> int pselect( int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset, const struct timespec *timeout, const sygset_t *sigmask)
struct timespec{
time_t tv_sec; //seconds
long tv_nsec; //nanoseconds
}
自己练习了一下:
- 第6章:I/O复用:select和poll函数
- 第6章 I/O复用:select和poll函数
- Unix网络编程代码 第6章 I/O复用:select、poll和epoll函数
- Unix网络编程学习笔记之第6章 I/O复用:select和poll函数
- I/O复用:Select和Poll函数
- I/O复用 select和poll函数
- I/O复用:select和poll函数
- 第六章:I/O复用:select和poll函数
- 第六章:I/O复用2:select和poll函数
- UNP第六章 I/O复用:select和poll函数
- [UNP笔记]I/O复用,select和poll函数
- I/O复用:select和poll函数(一)
- UNIX 网络编程 卷一:套接字联网API(第3版) 读书笔记(6) 第六章 I/O复用:select和poll函数
- 6 I/O复用:select and poll函数
- i/o复用 select和poll用法
- Linux I/O 模型---I/O复用:Select和Poll函数
- Linux I/O 模型---I/O复用:Select和Poll函数
- Unix下五种I/O模型(中文图片) I/O复用:Select和Poll函数
- 列表的备份与还原(列表模板)
- Asp.net生成静态页面原理
- 两台笔记本无线共享上网
- 深圳的实习生活(4)
- Memcached 命令操作
- 第6章:I/O复用:select和poll函数
- 总结我一年的程序生活
- 使用SQL查询表字段列的备注信息
- 如何快速建立数据字典,我如此设计小型数据库!
- 布线问题--队列式分支界限法
- XXX管理平台系统——概要
- 开博通知
- 用STL快速编写ini配置文件识别类
- XXX管理平台系统——架构