1 / 40
文档名称:

Linux下IO编程.ppt

格式:ppt   大小:605KB   页数:40页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Linux下IO编程.ppt

上传人:1136365664 2018/1/29 文件大小:605 KB

下载得到文件列表

Linux下IO编程.ppt

相关文档

文档介绍

文档介绍:Linux网络编程
第九单元
 I/O编程
1
本章导读
情况:
客户端同时处理标准输入和服务器应答,当客户端阻塞于标准输入时,服务器关闭了。虽然服务器正确的给客户端发送了结束信息,但是由于客户端正阻塞于标准输入,所以除非等到客户端读套接字时才能收到结束信息,否则客户端将一直等待,不知道服务器已经终止。
需要的技术:
如果一个或多个I/O需要处理时,如果有一个满足条件,进程就能得到通知。——I/O复用
2/39
第九单元 I/O编程
  I/O模型
  select函数
shutdown函数
3/39
I/O模型
I/O模型:套接字用来管理I/O数据的机制。
套接字接收数据时将一个输入操作分为两个不同的阶段:
(1)等待数据准备好。
(2)从内核到进程拷贝数据。
根据在这两个阶段的不同表现,I/O模型分为5种不同的类型
阻塞I/O、非阻塞I/O、I/O复用、信号驱动I/O和异步I/O
4/39
I/O模型——阻塞I/O
在网络应用中被普遍使用
默认情况下,套接字操作都是阻塞的
读写函数
读:read recv readv recvfrom recvmsg
写:write send writev sendto  sendmsg
请求建立连接--connect
接受连接--accept
阻塞
读的时候,对方崩溃,将会一直阻塞
进程在一个描述符上阻塞,则无法处理其他的描述符
5/39
I/O模型——阻塞I/O
6/39
I/O模型——非阻塞I/O
调用读后,立即返回,不管是否收到数据。如果没收到重新再进行一遍,直到收到数据为止。
7/39
I/O模型——I/O复用
调用select(BSD)或poll(systemV)函数,指示系统内核等待描述符集中的描述符的事件。
如果任一个描述符有事件发生,则返回,进行操作。
8/39
I/O模型——I/O复用
9/39
I/O模型——信号驱动I/O
让内核在描述字准备好时用信号SIGIO通知,通过signal系统调用安装一个信号处理程序,系统调用立即返回,进程继续工作。
10/39