计算机网络05——阻塞和非阻塞&缓冲区

阻塞和非阻塞

阻塞函数

socket默认是阻塞的,cin,cout

必须到等待的事情发生,才能继续执行,否则就会一直等待

特点

老王把水壶放在炉子上,一直在旁边等待

优点

CPU占用率低,等待的事情发生时,第一时间相应

非阻塞函数

特点

老王把水壶放在炉子上,去做了其他的事情,每隔一段时间,回来看一看水开没开

缺点

CPU占用率非常高,等待的事情发生时,不会第一时间知道

举例

操作系统会给每个进程分配4G的虚拟内存

(1.内存大小虚拟        2.取地址的地址是虚拟的,是映射地址,不真实对应内存条的地址)

内核空间:0~2G

用户空间:2~4G        独享的        代码里定义的变量空间recvBuf,sendBuf

创建socket时,一个socket对应内核空间里操作系统分配的两个缓冲区,接收缓冲区和发送缓冲区

操作系统接收到数据后,会根据端口号找到绑定的socket,把数据写入到socket对应的接收缓冲区里

程序调用recvfrom函数时,把使用的socket对应的接收缓冲区的数据拷贝到用户空间recvBuf里

程序调用sendto函数时,把自己空间的数据从sendbuf向使用的soc

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值