从epoll构建muduo-8 加入发送缓冲区和接收缓冲区

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
epoll构建muduo-2 最简单的epoll mini-muduo v 0.01版本,这是mini-muduo的第一个版本,整个程序是一个100行的epoll示例 下面粘贴的代码省略了头文件引用,完整可运行的示例可从github下载,使用命令git checkout v0.01可切换到此版本,在线浏览到这里 #define MAX_LINE 100 #define MAX_EVENTS 500 #define MAX_LISTENFD 阅读详情

相关推荐

epoll构建muduo-1 mini-muduo介绍

前段时间看了陈硕写的muduo网络库(github, 书, blog),觉得这是一个学习网络编程的非常好的素材。为了更好的了解这个库,自己花了点时间,模仿其源码从零开始编写了一个极小的mini-muduo(起这名字没版权问题吧:-)),代码编写过程中有很多收获,我打算写几篇文章记录下心得。有几个问题先说明一下: Q1:网络库很多,为什么选择muduo?     1 库的功能相对完整,基

voidccc的专栏 1万+

muduo中的EPollPoller反应堆类

文章目录EPollPoller.hEPollPoller::updateChannel()EPollPoller::update()EPollPoller::removeChannel EPollPoller.h EPollPoller的主要功能是实现Poller类保留的纯虚函数接口poll(epoll_wait)、updateChannel(epoll_ctl)、removeChannel(epoll_ctl) muduoEPollPoller.h如下: class EPollPoller : pub

长期更新自学笔记 1126

epoll构建muduo-6 加入EventLoopEpoll

mini-muduo v0.05版本,完整可运行的示例可从github下载,使用命令git checkout v0.05可切换到此版本,在线浏览此版本到这里 本版将程序的主要类都加入进来了,这个版本可以作为一个里程碑版本,最重要的修改是加入了两个类EventLoopEpoll加入这两个类后,程序代码逻辑就相对清晰多了。为了有个更直观的了解,我们对照之前介绍的最简单epoll示例(从epoll

voidccc的专栏 4010

muduo核心组件分析

muduo的设计真的很巧妙。不少人说这个网络库的源码剖析起来比较容易,但是我感觉里面调用来调用去还是比较复杂的。 根据打印的日志分析了muduo库的流程。如果有不对的地方,欢迎朋友们指正。 以 echo 为例,下面把 maic.cc, echo.h, echo.cc 整在一起了,就整在 main.cc 里。子线程设置3个。主要关注各个文件里的函数是怎样跳转的。 class EchoServer { public: EchoServer(muduo::net::EventLoop* loop,

weixin_42468707的博客 1229

[muduo网络库]——muduo库三大核心组件之 Poller/EpollPoller类(剖析muduo网络库核心部分、设计思想)

muduo 是由陈硕大佬个人开发的 TCP 网络库,本专栏使用c++11重构了Muduo库中核心的Multi-Reactor架构,剖析大佬核心的代码设计思想,希望能够理清自己的思路,也希望能够帮助到大家。

m0_73537205的博客 1993

重写muduo网络库:具体的多路分发器:EPollPoller

muduoepoll的封装

weixin_43973403的博客 497

epoll构建muduo-4 加入Channel

mini-muduo v 0.03版本,这是个版本最重要的修改是加入了一个名为Channel的类。完整可运行的示例可从github下载,使用命令git checkout v0.03可切换到此版本,在线浏览此版本到这里 介绍一下Channel类,先看其声明,这里特别要注意_events_revents,前者是要关注的事件,后者是发生的事件,不仔细看容易混淆。名字的来源是poll(2)的struc

voidccc的专栏 4611

epoll构建muduo-3 加入第一个类,顺便介绍reactor

mini-muduo v 0.02版本,这个版本添加的内容非常少,完整可运行的示例可从github下载,使用命令git checkout v0.02可切换到此版本,在线浏览到这里 #include "TcpServer.h" int main(int args, char** argv) { TcpServer tcpserver; tcpserver.start();

voidccc的专栏 4673

epoll构建muduo-9 加入onWriteComplate回调Buffer

mini-muduo v0.08版本,这个版本完善了缓冲区的实现。mini-muduo完整可运行的示例可从github下载,使用命令git checkout v0.08可切换到此版本,在线浏览此版本到这里  本版本有两处重要修改,首先实现了IMuduoUser的onWriteComplate回调,这样当用户一次传送大量数据到网络库时,用户会在数据发送完成后收到通知。当然了发送小量数据完成时也

voidccc的专栏 3039

epoll构建muduo-7 加入IMuduoUser

mini-muduo v0.06版本,这个版本应该算是一个里程碑版本,最重要的修改是将库库的用户分离。完整可运行的示例可从github下载,使用命令git checkout v0.06可切换到此版本,在线浏览此版本到这里 1 在这个版本中,我们的网络库才真正的能被称为“库”。整个mini-muduo程序现在被分成了两部分,一边是库,另一边是库的用户。EchoServer这个类就是用户了,用户

voidccc的专栏 3150

epoll构建muduo-5 加入AcceptorTcpConnection

mini-muduo v0.04版本,这是个版本最重要的修改是加入了两个类AcceptorTcpConnection。完整可运行的示例可从github下载,使用命令git checkout v0.04可切换到此版本,在线浏览此版本到这里 1 回顾下v0.03版本,所有的socket事件都是在TcpServer::OnIn(命名不规范后续会改动)里处理的,包括接受新连接读写数据,那实在是没

voidccc的专栏 3497

epoll构建muduo-12 多线程入场

多线程代码被加入到mini-muduo,本篇主要介绍Linux多线程编程的5个类 1 Mutex 2 Condition 3 BlockingQueue 4 Thread 5 ThreadPool

voidccc的专栏 5031

epoll构建muduo-10 Timer定时器

mini-muduo v0.09版本,实现了Timer定时器。mini-muduo完整可运行的示例可从github下载,使用命令git checkout v0.09可切换到此版本,在线浏览此版本到这里。 这个版本是一个里程碑版本,到这个版本为止,可以说一个单线程的Reactor模式网络库基本成型,程序里的类各司其职,协同完成网络数据的首发。后续版本只是在此基础上增加了多个工作线程(耗费CPU

voidccc的专栏 6304

epoll构建muduo-11 单线程Reactor网络模型成型

mini-muduo v0.10版本,修整代码版本。mini-muduo完整可运行的示例可从github下载,使用命令git checkout v0.10可切换到此版本,在线浏览此版本到这里。 这个版本的改动不大,主要修改了命名规范问题,借着这个版本重点分析一下muduo里的三个文件描述符。

voidccc的专栏 4003

epoll构建muduo-13 Reactor + ThreadPool 成型

本版是个里程碑版本,可以通过本版了解多线程是如何通过IO线程读/写网络数据的,在前一个版本v0.12重点介绍了基础知识的前提下,本篇着重分析多线程逻辑里最重要的三个方法EventLoop::runInLoop/EventLoop::queueInLoop/EventLoop::doPendingFunctors。下面逐步介绍本版本修改的细节,三个方法放在最后的EventLoop节。

voidccc的专栏 2941

muduo网络库剖析——监听者EpollPoller类

基于c++的muduo网络库开源项目深度剖析!超级加分的简历项目,期待您的讨论~

weixin_62021811的博客 1283

muduo库学习笔记-如何保证数据成功发送

如何保证数据一定能够被发出去 在网络编程中常常利用write将数据拷贝到内核的发送缓冲区,然后由协议将数据发送到对端,但是如何保证一次write能够将所有的数据都拷贝到内核缓冲区呢?如果还有数据没有被拷贝进去怎么办?如果拷贝的过程中内核缓冲区满了怎么办?如果拷贝的过程中write返回-1错误又怎么办?针对这些问题,muduo库都进行了解决。 muduo是怎么发送数据的? muduo库并不是将所...

hdadiao的博客 683

muduo网络库--功能架构总结

muduo总结

x13262608581的博客 1288

c++学习笔记【04】-- muduo 网络库的核心功能实现

muduo网络库的核心功能实现。

weixin_50214044的博客 1519
上一篇: 从epoll构建muduo-7 加入IMuduoUser
下一篇: 从epoll构建muduo-9 加入onWriteComplate回调和Buffer
voidccc
博客等级 码龄14年 149粉丝 28原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值