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

epoll构建muduo-1 mini-muduo介绍 前段时间看了陈硕写的muduo网络库(github, 书, blog),觉得这是一个学习网络编程的非常好的素材。为了更好的了解这个库,自己花了点时间,模仿其源码从零开始编写了一个极小的mini-muduo(起这名字没版权问题吧:-)),代码编写过程中有很多收获,我打算写几篇文章记录下心得。有几个问题先说明一下: Q1:网络库很多,为什么选择muduo?     1 库的功能相对完整,基 阅读详情
epoll构建muduo-10 Timer定时器 mini-muduo v0.09版本,实现了Timer定时器。mini-muduo完整可运行的示例可从github下载,使用命令git checkout v0.09可切换到此版本,在线浏览此版本到这里。 这个版本是一个里程碑版本,到这个版本为止,可以说一个单线程的Reactor模式网络库基本成型,程序里的类各司其职,协同完成网络数据的首发。后续版本只是在此基础上增加了多个工作线程(耗费CPU 阅读详情

相关推荐

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

voidccc的专栏 6170

muduo网络库源码解析 六

本章节我们来解析Buffer类(应用层缓冲区)的设计以及TcpConnection接收发送数据。 我们首先来回顾一下muduo的IO模型:one loop per thread + IO multiplexing event loop是non-blocking网络编程的核心,而non-blocking几乎总是IO multiplexing一起使用: (1)没有人真的会使用轮询来检查某个n

xufeilong520xu的专栏 767

epoll构建muduo-12 多线程入场

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

voidccc的专栏 5031

muduo::TcpConnection分析

muduo::TcpConnection分析

KangRoger的专栏 3913

muduo编程示例2019-11-02

图片发自简书App //discard 长连接应用层协议,关注:消息/数据到达事件。 void DiscardServer::onMessage(const TcpConnectionPtr& conn, Buffer* buf, ...

yeyueyouhun的博客 297

muduo源码剖析 - TcpConnection

muduo源码剖析

YanWenCheng_的博客 832

muduo例子学习笔记1

1.五个简单TCP协议1)discard--丢弃所有收到的数据#include "discard.h" #include <muduo/base/Logging.h> #include <muduo/net/EventLoop.h> using namespace muduo; using namespace muduo::net; int main(...

weixin_34008933的博客 201

Muduo分析及总结(六)TcpConnection

一、类关系图 首先看TcpConnection在整个Muduo结构中的关系,如下图 图1 TcpConnection是整个网络库的核心,封装一次Tcp连接,注意它不能发起连接。 TcpServerTcpClient都用到了TcpConnection。 二、源码分析 TcpConnection.h 在这里插入代码片 三、关键点总结 四、发送接收数据流程 ...

蜗牛,为梦想而生。 1607

Muduo 多线程模型:一个 Sudoku 服务器演变

陈硕 (giantchen AT gmail)blog.csdn.net/SolsticeMuduo 全系列文章列表: http://blog.csdn.net/Solstice/category/779646.aspx本文以一个 Sudoku Solver 为例,回顾了并发网络服务程序的多种设计方案,并介绍了使用 muduo 网络库编写多线程服务器的两种最常用手法。以往的例子展现了

陈硕的Blog 5万+

RST与epollEPOLLHUP事件

socket的一端认为对方发来了一个不存在的4元组请求的时候,会回复一个RST响应,在epoll上会响应为EPOLLHUP事件,目前我已知的两种情况会发响应RST [1] 当客户端向一个没有在listen的服务器端口发送的connect的时候 服务器会返回一个RST 因为服务器根本不知道这个4元组的存在  [2] 当已经建立好连接的一对客户端服务器,客户端突然操作系统崩溃,或者拔掉

voidccc的专栏 1万+

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-4 加入Channel

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

voidccc的专栏 4612

tcpdump重要笔记

关于tcpdump的重要笔记,无关痛痒的参数就不写了。只说一些我认为值得注意的

voidccc的专栏 4561

epoll构建muduo-6 加入EventLoopEpoll

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

voidccc的专栏 4011

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

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

voidccc的专栏 4003

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

mini-muduo v0.07版本,这个版本是加入了发送缓冲区接收缓冲区的初始版本,后续v0.08完善了缓冲区的实现。mini-muduo完整可运行的示例可从github下载,使用命令git checkout v0.07可切换到此版本,在线浏览此版本到这里 1 为什么要有发送缓冲区接收缓冲区,muduo作者已经在>节中详细介绍过了。建议有条件的同学直接看书。我觉得这部分知识非常重要所以

voidccc的专栏 3897

epoll构建muduo-5 加入AcceptorTcpConnection

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

voidccc的专栏 3497

Socket连接出错总结

下面7种情况是我认为最容易出现的TCP/IP连接错误。 [1] kill pid/应用崩溃/正常关机     这几种情况下操作系统会正常将连接关闭,主动发送FIN完成4次分组交换 [2] 操作系统崩溃/机器断电     两种情况     1 如本端不再启动则不会有任何响应到对端,对端会执行[6]的超时重传重过程     2 如果机器后来又启动了,则会在对端写时返回RST

voidccc的专栏 3237
上一篇: 从epoll构建muduo-8 加入发送缓冲区和接收缓冲区
下一篇: 从epoll构建muduo-10 Timer定时器
voidccc
博客等级 码龄14年 149粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值