Linux中网络通信的5种通信模型

本文详细介绍了Linux中网络通信的5种模型:阻塞IO、非阻塞IO、I/O复用(select/poll/epoll)、信号驱动IO和异步IO。阻塞IO在数据未准备好时会等待;非阻塞IO则避免了长时间等待,但可能频繁检查;I/O复用能同时监听多个端口;信号驱动IO通过SIGIO信号通知数据就绪;异步IO则是调用后无需等待,完成后通知调用者。
摘要由CSDN通过智能技术生成

.Linux中网络通信的5种通信模型

(1)阻塞IO

(2)非阻塞IO

(3)I/O复用

(4)信号驱动

(5)异步I/O

注:前四种都是同步,最后一种才是异步

阻塞IO

应用程序调用一个I/O函数,导致应用程序阻塞,等待数据准备好。如果数据没有准备好,一直等待,直到数据准备好了,从内核拷贝到用户空间,IO函数返回成功指示。

非阻塞I/O

非阻塞IO通过进程反复调用IO函数(多次系统调用,并马上返回);在数据拷贝的过程中,进程是阻塞的,我们把一个socket接口设置成为非阻塞就是告诉内核,当所请求的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值