网络编程第一篇之Select模式

网络编程第一篇之Select模式

今天总结下Select模式下网络编程模型,首先我们要知道一个高级的技术,绝对不是凭空产生的,它一定是在原来的技术上由于满足不了需求,然后经过不断的打磨,一步步走向今天这个样子。那么Select模式的由来是什么呢?之前又是因为哪些原因,让我们提出了这种IO多路复用的模式呢?
首先,对于常规下的网络编程,我们知道,服务器在某个端口监听之后,就等着客户端去链接。即使我们的accept函数使用非阻塞的,也需要当返回一个客户端的链接的时候,对这个链接的数据进行不断的读取,常规我们一般用多线程+非阻塞式的网络编程方式来实现,(后面会单独写一篇关于服务器用多线程+非阻塞网络编程的文章),但这种方式带来一个问题就是,每一个链接都要开辟一个新的线程,数量少时还可以,当数量上亿时就不合适了,另外,这个很多时候这个链接也没有数据读取,那么这个线程一直运行也会浪费CPU,总之这种方式有局限性。所以APUE这本书中,提供一种叫做IO多路复用的方式,采用异步方式处理。将这些ScoketID,放到一张表中,其实对应就是FD_SET中,将这个ID放到一个固定数组中,然后检测,Select函数检测,这个数组中是否有读或者写准备就绪,如果有,就立即返回,并告诉内核,有哪些准备好了
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值