首先,我们要了解IO模型先要知道在底层操作系统是通过哪些设备来实现数据的传输,其次要了解IO模型中哪些是发生阻塞调用操作,然后有了上述的基本认知之后,开始来了解IO模型是如何演进,最后通过IO模型的演进我们要辨别...可以称为一个中转站
硬件: 对于网络编程而言,与关联的硬件设备就是网络接口控制器等设备,通过网络接口控制器将字节流数据传输到互联网再根据IP地址等信息传输到其他计算机系统应用程序,实现多台计算机系统之间的通信
文件描述符...(File descriptor):在linux/unix系统中,文件进程存储着一份文件描述表(数组存储),数组存储file结构指针类型,文件进程通过数组索引来完成文件的操作,这里的数组索引也就是文件描述符...,但是用户进程不知道什么时候数据报可达,于是就开始不断轮询(polling)向系统内核发起recvfrom的系统调用“询问数据来了没”,如果没有则继续返回错误
用户进程轮询发起recvfrom系统调用直至数据报可达...函数的调用(本质上是基于文件描述符集合的遍历),向内核注册对应的事件并等待事件可读或者超时通知到select函数
而对于AIO模型而言,是一种实现真正的非阻塞异步IO方式,但是在linux/unix系统支持此