- 博客(3)
- 资源 (2)
- 收藏
- 关注
原创 HTTP 服务器:在reactor模式框架内实现协议层应用
到这里我们可以总结一下,在整个webserver中,epoll担任多路复用的角色,reactor担任事件分发的角色(执行哪些操作,用哪些回调函数),这个架构就是实现了网络io连接进行数据交换的基础,这篇文章在该基础上实现了协议传输,可以与万维网实现多媒体文件的传输。HTTP是一个基于TCP/IP的通信协议,它工作与客户端-服务端架构,浏览器作为HTTP客户端通过URL向服务端发送请求(request),服务端收到请求后做出回应(response)为了保持 Reactor 的通用性,我们将业务逻辑从底层的。
2026-01-08 12:40:09
437
原创 Reactor 模型:基于 Epoll 的事件驱动架构解析
我们可以敏锐的感觉到,这是一个由事件触发任务的一个流程,reactor是将所有要处理的事件注册到一个中心io多路复用器上,同时主线程阻塞在多路复用器上,一旦有IO事件到来或者准备就绪,多路复用器返回并将事先注册的相应IO事件分发到对应服务器中。应用程序不是主动调用某个API完成任务执行,应用程序注册一些待执行的任务,在某个事件发生时,reactor主动调用应用程序注册的接口来执行相应的任务,这些接口就称为回调函数。下面的代码实现事件的注册,accept成功后,调用此函数将新连接加入连接池里。
2026-01-07 23:41:30
386
原创 网络io与多路复用io 一步步优化出高性能网络模型
这个时候就引出了目前linux中实现io多路复用的select poll epoll的三种机制,他们不在一次申请好多线程,而是用一个线程监视多个fd,查看io发生的事件,io的生命周期里是由无数多个事件组成的,在工程上,我们关注的是io的某几个事件而不是io的整个生命周期,所以就有了这三种来观察io事件发生的三种机制。主线程里拿到客户端的连接后,我们创建一个新线程,然后将收发任务扔到新线程里,此时主线程便可以一直接收到客户端的连接,收到连接后将负责的任务扔给新线程,便可以实现io的多路复用。
2026-01-07 22:39:58
613
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅