合集-网络编程

摘要:Linux网络IO模型浅析(一)阻塞IO## 题记 提到Linux网络IO,相信大家都不陌生。 最初学习进程间通信的时候,我们通常都会用socket实现一个简单的c-s通信模型,其实那个时候已经初探了网络编程的门径,我们用socket实现了一个简单的数据收发,其实也内含一种基本的网络IO模型(阻塞IO)。 随着学习的深入,我们了解到更多的 阅读全文
posted @ 2023-06-14 18:45 __misc 阅读(13) 评论(0) 推荐(0)
摘要:Linux网络IO模型浅析(四)信号驱动IO与异步IO# 阻塞io的局限性 前面三章提到的**阻塞IO**,**非阻塞IO**以及**多路复用网络IO**模型,都没有实现真正意义上的**异步非阻塞**; 阻塞:阻塞IO会一直阻塞任务直至操作完成。 异步:响应处理和拷贝无需带阻塞的串行完成,时间上是非同步的。 阻塞IO:编程简单,但是必须阻塞,直至数据响 阅读全文
posted @ 2023-06-14 18:49 __misc 阅读(26) 评论(0) 推荐(0)
摘要:Linux网络IO模型浅析(五)reactor模型解析与实现方法# 高并发网络编程的网络模型 在高并发编程领域中,对于接入数据的处理,通常可以分为两个阶段: 等待消息准备好 消息处理 当使用默认的阻塞套接字时(例如前面提到的1个线程捆绑一个cpu然后处理1个连接),往往把这两个阶段合而为一,**阻塞等待消息拷贝完成,然后进行处理**。这样操作套接字的代码所在的线 阅读全文
posted @ 2023-06-14 18:50 __misc 阅读(8) 评论(0) 推荐(0)
摘要:Linux网络IO模型浅析(二)非阻塞IO# 非阻塞IO 非阻塞IO与阻塞IO的区别从字面上就可以区分出来,在于调用读写socket的接口函数后,是否发生阻塞。 我们可以通过设置socket为非阻塞模式来进行非阻塞IO的实现。通常有以下两种方法: 1. 使用socket提供的接口: ```c int sock_fd = socket(AF_ 阅读全文
posted @ 2023-06-14 18:47 __misc 阅读(30) 评论(0) 推荐(0)
摘要:Linux网络IO模型浅析(三)多路复用IO# 多路复用IO(IO multiplexing) 提到IO multiplexing,可能大部分人会感觉到陌生,但实际上我们平时用的**select,epoll**等就是**多路复用IO**的实例。 因为IO多路复用本质上是内核一旦发现某进程指定的一个或多个IO**产生事件**,就通知该进程,所以 阅读全文
posted @ 2023-06-14 18:48 __misc 阅读(13) 评论(0) 推荐(0)