- 阻塞I/O模型:最常用的I/O模型就是阻塞I/O模型,在缺省情形下,所有文件操作都是阻塞的。我们以套接字接口为例:在进程空间中调用recvfrom(recvfrom()用来结束远程主机经指定的socket传来的数据,并把数据传到由参数buf指定的内存空间;返回值:成功则返回接收到的字符数,失败返回-1),在系统调用知道数据包到达且被复制到应用进程的缓冲区中或者发生错误才返回,在次期间一致会等待,进程在从调用revcfrom开始到它返回的整段时间内都是被阻塞的,
- 非阻塞I/O:recvfrom从应用层到内核的时候,如果该缓冲区没有数据的话,就直接返回一个EWOULDBLOCK(该操作可能会被阻塞,E:error,WOULDBLOCK:可能会被阻塞)错误,一般都对非阻塞I/O模型进行轮询检查这个状态,看内核是不是有数据到来