mini-muduo版本传送门
version 0.00 从epoll构建muduo-1 mini-muduo介绍
version 0.01 从epoll构建muduo-2 最简单的epoll
version 0.02 从epoll构建muduo-3 加入第一个类,顺便介绍reactor
version 0.03 从epoll构建muduo-4 加入Channel
version 0.04 从epoll构建muduo-5 加入Acceptor和TcpConnection
version 0.05 从epoll构建muduo-6 加入EventLoop和Epoll
相关推荐
发布一个改写自muduo的C++网络I/O库
kimgbo是一个基于Reactor模式的网络I/O库,优先考虑易用性,由muduo网络库改写而来。保留了muduo基于对象的编程风格,支持oneloop per thread + threadpool 模型。并去除了muduo对于Boost库的依赖,转而采用C++11和tr1标准替代,优化了muduo网络I/O库一处存在racecondition隐患的代码,几乎具备了muduo网
48.muduo学习笔记之example_聊天服务器例子
1. 说明 本例子是与 Boost.Asio 的示例代码中的聊天服务器功能类似的网络服务程序,主要目的是介绍如何处理分包,并初步涉及 Muduo 的多线程功能。代码位于 examples/asio/chat/ 一共有四个版本的服务器 server.cc 单线程 server_threaded.cc 多线程TcpServer,并用mutex来保护共享数据mutex server_threa...
muduo_net库源码分析(四)
对应p28
47.muduo学习笔记之example_下载文件例子
说明 这个例子源码位于作者的源代码文件夹下examples/filetransfer文件下下 实现一个发送文件的命令行小工具,这个工具的协议很简单,在启动时通过命令行参数指定要发送的文件,然后在 2021 端口侦听,每当有新连接进来,就把文件内容完整地发送给对方。 可以直接用telnet测试,只是服务器把文件发过去后,直接在控制台输出 发送完就调用shutdownWrite()关闭...
muduo网络库示例(聊天服务器)
聊天服务器(MuduoManual.pdf P66) examples/asio/chat/server.cc 单线程 examples/asio/chat/server_threaded.cc,多线程TcpServer,并用mutex来保护共享数据mutex examples/asio/chat/server_threaded_efficient.cc,借shared_ptr实现copy-on-write的手法来降低锁竞争 examples/asio/chat/server_threaded_hi
46.muduo学习笔记之example_discard例子
1. 说明 discard是连接到来时不做任何处理,代码比较短,贴在下面,后面的例子代码较长,还是自己找源码吧 实际就是一个DiscardServer类,有EventLoop* 和 TcpServer对象,重写连接到来函数和消息到来函数 2. 代码 /* 收到消息不做任何处理 */ #include<muduo/base/Logging.h> #include<...
以基于Reactor模式的高并发EchoServer为例剖析muduo库框架
前言 在讲解基于muduo库的高并发echo服务器之前,我们先来回顾一下我们一般编写基于Reactor模式的高并发服务器的基本流程。 muduo的EchoServer其实也是基于上述流程,只不过进行了一定程度地封装,本质上仍是Reactor模式。muduo的example中的echo服务器代码展示的是只有一个reactor的服务器,muduo其实支持one loop per t...
muduo学习笔记:net部分之Http--HttpServer
前面【muduo学习笔记:net部分之Http–HttpRequest、HttpResponse 和 HttpContext】介绍了TCP数据数据Buffer承载的HTTP报文的解析,本文结合TcpServer,基于muduo实现一个简单的HttpServer。由于对协议解析不完善,它不适合写web的通用服务。 1、HttpServer的定义 有了TcpServer的基础,加上前面博客关于HttpRequest、HttpResponse 和 HttpContext的使用,我们可以封装一个HttpServe
Muduo网络库学习知识点总结
static_cast (expression) 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法: ①用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。 进行上行转换(把派生类的指针或引用转换成基类表示)是安全的; 进行下行转换(把基类指针或引用转换成派生类表示)时,由于没有动态类型检查,所
基于muduo网络库的集群聊天系统(C++实现)
文章目录 作者:shenmingik 邮箱:2107810343@qq.com 时间:2021/1/26 22:17 开发环境:Ubuntu VS Code 编译器:g++ 数据库:MySQL 编程语言:C++ 源码连接:https://pan.baidu.com/s/1nfPZ9uKmqSiAsWTGQR57Ug
安装muduo报错
在linux环境下安装muduo,每次执行编译指令./bush -j2都会报错
应用muduo库编写服务端程序的简单示例
1 、 工作环境:Linux系统中; 2、 使用muduo库进行编写程序需要链接到库文件libmuduo_base.so、libmuduo_net.so、libpthread.so,一般在系统路径 /usr/lib 或者 /usr/local/lib 下,所以不需要添加头文件的搜索路径,因为这两个路径是处在环境变量中,是自动搜索的。 代码: 注释里面写的很清楚,工作环境是用vscode连接到远程的linux进行开发的,上面也说了一下,直接包含头文件就可以了,不用添加搜索路径,然后对上面的源文件进行
从epoll构建muduo-1 mini-muduo介绍
前段时间看了陈硕写的muduo网络库(github, 书, blog),觉得这是一个学习网络编程的非常好的素材。为了更好的了解这个库,自己花了点时间,模仿其源码从零开始编写了一个极小的mini-muduo(起这名字没版权问题吧:-)),代码编写过程中有很多收获,我打算写几篇文章记录下心得。有几个问题先说明一下: Q1:网络库很多,为什么选择muduo? 1 库的功能相对完整,基
muduo解包消息分发
1.dispatcher_.registerMessageCallback 这个会将回调函数存入ProtobufDispatcher的std::map中,其中T::descriptor()为key 2.client_.setMessageCallback(std::bind(&ProtobufCodec::onMessage, &codec_, _1, _2, _3)) 设置消息...
muduo 环境整理,备忘
之前项目用的 ubuntu 14.04,g++ 是4.8,用的muduo后来改用 ubuntu 16.04,默认g++是5.4,用旧工程,需要先将 g++ 降到4.8,步骤如下:apt-get install gcc-4.8ls /usr/bin/gcc*查看是否安装成功update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 ...
Muduo编译步骤
记录编译Muduo库出现的错误以及解决方案 Muduo版本号: 1.0.8 错误1: 出现 ‘ld -lpthread not find’ 的错误, 原因是 boost库没有指定, 这个错误提示是最坑的, 错误提示完全不知道是什么意思. 解决方案: 在CMakeLists.txt中加入 boost库的头文件和库文件路径即可 set(BOOST_INCLUDED
muduo 样例分析 线程模型
sudoku 每个socket都只在一个线程,避免线程冲突,由于epoll_wait时,一个socket由于读写不及时,多次被触发,不同线程读写同一个socket。epoll_wait是线程安全的,et和lt都存在上面这个问题,建议如果同一socket可能在不同线程的,设为EPOLLONESHONT,单次触发,后面再epoll_ctl加入。 1、server_hybird.cc 主IO+ 读...
4046




被折叠的 条评论
为什么被折叠?



