UNIX网络编程中,哪种IO模型可以描述为等待数据到来直到数据到来,然后处理数据直到数据被完全处理完毕的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计187个文字,预计阅读时间需要1分钟。
Linux的内核将所有外部设备都视为一个文件,对文件的读写操作会调用内核的通用系统命令返回一个file descriptor。Linux的内核将所有外部设备都看作是一个文件,读写文件会调用内核的系统命令,返回一个文件描述符。
Linux的内核将所有外部设备都看作是一个文件来操作对一个文件的读写操作会调用内核共的系统命令返回一个filedescriporf Linux的内核将所有外部设备都看作是一个文件来操作对一个文件的读写操作会调用内核共的系统命令返回一个file descriporfd 文件描述符。而对一个socket的读写也会有相应的描述符称之为socketfdsocket描述符描述符就是一个数字它指向内核中的一个结构体文件路径、数据区等一些属性。
根据UNIX网络编程对IO模型的分类UNIX提供了5中IO模型分别如下
1阻塞IO模型最常用的IO模型就是阻塞IO模型缺省情形下所有的文件操作都是阻塞的。我们以套接字接口为例来讲解此模型
在进程空间中调用recvfrom其系统调用直到数据包到达且被复制到应用进程的缓冲区中或者发送错误才返回在此期间一直会等待进程在从调用recvfrom开始到它返回的整段时间内都是被阻塞的因此被称之为阻塞IO模型
2非阻塞IO模型recvfrom从应用层到内核的时候如果该缓存区没有数据的话就直接返回一个EWOULDBLOCK错误一般都对非阻塞IO模型进行轮询检测这个状态看内核中是不是有数据到来。
3IO复用模型Linux提供select/poll进程通过将一个或者多个fd传递给select或者poll系统调用阻塞在select操作上这样select/poll可以用帮我们监测多个fd是否存于就绪状态。
本文共计187个文字,预计阅读时间需要1分钟。
Linux的内核将所有外部设备都视为一个文件,对文件的读写操作会调用内核的通用系统命令返回一个file descriptor。Linux的内核将所有外部设备都看作是一个文件,读写文件会调用内核的系统命令,返回一个文件描述符。
Linux的内核将所有外部设备都看作是一个文件来操作对一个文件的读写操作会调用内核共的系统命令返回一个filedescriporf Linux的内核将所有外部设备都看作是一个文件来操作对一个文件的读写操作会调用内核共的系统命令返回一个file descriporfd 文件描述符。而对一个socket的读写也会有相应的描述符称之为socketfdsocket描述符描述符就是一个数字它指向内核中的一个结构体文件路径、数据区等一些属性。
根据UNIX网络编程对IO模型的分类UNIX提供了5中IO模型分别如下
1阻塞IO模型最常用的IO模型就是阻塞IO模型缺省情形下所有的文件操作都是阻塞的。我们以套接字接口为例来讲解此模型
在进程空间中调用recvfrom其系统调用直到数据包到达且被复制到应用进程的缓冲区中或者发送错误才返回在此期间一直会等待进程在从调用recvfrom开始到它返回的整段时间内都是被阻塞的因此被称之为阻塞IO模型
2非阻塞IO模型recvfrom从应用层到内核的时候如果该缓存区没有数据的话就直接返回一个EWOULDBLOCK错误一般都对非阻塞IO模型进行轮询检测这个状态看内核中是不是有数据到来。
3IO复用模型Linux提供select/poll进程通过将一个或者多个fd传递给select或者poll系统调用阻塞在select操作上这样select/poll可以用帮我们监测多个fd是否存于就绪状态。

