从epoll构建muduo-7 加入IMuduoUser

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

相关推荐

发布一个改写自muduo的C++网络I/O库

kimgbo是一个基于Reactor模式的网络I/O库,优先考虑易用性,由muduo网络库改写而来。保留了muduo基于对象的编程风格,支持oneloop per thread + threadpool 模型。并去除了muduo对于Boost库的依赖,转而采用C++11和tr1标准替代,优化了muduo网络I/O库一处存在racecondition隐患的代码,几乎具备了muduo

kimg_bo的专栏 4046

48.muduo学习笔记之example_聊天服务器例子

1. 说明 本例子是与 Boost.Asio 的示例代码中的聊天服务器功能类似的网络服务程序,主要目的是介绍如何处理分包,并初步涉及 Muduo 的多线程功能。代码位于 examples/asio/chat/ 一共有四个版本的服务器 server.cc 单线程 server_threaded.cc 多线程TcpServer,并用mutex来保护共享数据mutex server_threa...

LvPartner的博客 817

muduo_net库源码分析(四)

对应p28

ShenHang_的博客 323

47.muduo学习笔记之example_下载文件例子

说明 这个例子源码位于作者的源代码文件夹下examples/filetransfer文件下下 实现一个发送文件的命令行小工具,这个工具的协议很简单,在启动时通过命令行参数指定要发送的文件,然后在 2021 端口侦听,每当有新连接进来,就把文件内容完整地发送给对方。 可以直接用telnet测试,只是服务器把文件发过去后,直接在控制台输出 发送完就调用shutdownWrite()关闭...

LvPartner的博客 754

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

侯彩桦 1297

46.muduo学习笔记之example_discard例子

1. 说明 discard是连接到来时不做任何处理,代码比较短,贴在下面,后面的例子代码较长,还是自己找源码吧 实际就是一个DiscardServer类,有EventLoop* 和 TcpServer对象,重写连接到来函数和消息到来函数 2. 代码 /* 收到消息不做任何处理 */ #include<muduo/base/Logging.h> #include<...

LvPartner的博客 370

以基于Reactor模式的高并发EchoServer为例剖析muduo库框架

前言 在讲解基于muduo库的高并发echo服务器之前,我们先来回顾一下我们一般编写基于Reactor模式的高并发服务器的基本流程。 muduo的EchoServer其实也是基于上述流程,只不过进行了一定程度地封装,本质上仍是Reactor模式。muduo的example中的echo服务器代码展示的是只有一个reactor的服务器,muduo其实支持one loop per t...

一步一步往上爬 947

muduo学习笔记:net部分之Http--HttpServer

前面【muduo学习笔记:net部分之Http–HttpRequest、HttpResponse 和 HttpContext】介绍了TCP数据数据Buffer承载的HTTP报文的解析,本文结合TcpServer,基于muduo实现一个简单的HttpServer。由于对协议解析不完善,它不适合写web的通用服务。 1、HttpServer的定义 有了TcpServer的基础,加上前面博客关于HttpRequest、HttpResponse 和 HttpContext的使用,我们可以封装一个HttpServe

热爱生活,忠于自己 1454

Muduo网络库学习知识点总结

static_cast (expression) 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:   ①用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。   进行上行转换(把派生类的指针或引用转换成基类表示)是安全的;   进行下行转换(把基类指针或引用转换成派生类表示)时,由于没有动态类型检查,所

你那么爱笑,家里人知道吗? 1038

基于muduo网络库的集群聊天系统(C++实现)

文章目录 作者:shenmingik 邮箱:2107810343@qq.com 时间:2021/1/26 22:17 开发环境:Ubuntu VS Code 编译器:g++ 数据库:MySQL 编程语言:C++ 源码连接:https://pan.baidu.com/s/1nfPZ9uKmqSiAsWTGQR57Ug

0 error(s) 6445

安装muduo报错

linux环境下安装muduo,每次执行编译指令./bush -j2都会报错

Denuoxi的博客 294

应用muduo库编写服务端程序的简单示例

1 、 工作环境:Linux系统中; 2、 使用muduo库进行编写程序需要链接到库文件libmuduo_base.so、libmuduo_net.so、libpthread.so,一般在系统路径 /usr/lib 或者 /usr/local/lib 下,所以不需要添加头文件的搜索路径,因为这两个路径是处在环境变量中,是自动搜索的。 代码: 注释里面写的很清楚,工作环境是用vscode连接到远程的linux进行开发的,上面也说了一下,直接包含头文件就可以了,不用添加搜索路径,然后对上面的源文件进行

weixin_43527115的博客 534

epoll构建muduo-1 mini-muduo介绍

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

voidccc的专栏 1万+

muduo解包消息分发

1.dispatcher_.registerMessageCallback 这个会将回调函数存入ProtobufDispatcher的std::map中,其中T::descriptor()为key 2.client_.setMessageCallback(std::bind(&ProtobufCodec::onMessage, &codec_, _1, _2, _3)) 设置消息...

枯树无花 255

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 ...

qq_34326603的博客 380

Muduo编译步骤

记录编译Muduo库出现的错误以及解决方案 Muduo版本号: 1.0.8 错误1: 出现 ‘ld -lpthread  not find’ 的错误, 原因是 boost库没有指定, 这个错误提示是最坑的, 错误提示完全不知道是什么意思. 解决方案:  在CMakeLists.txt中加入 boost库的头文件和库文件路径即可      set(BOOST_INCLUDED

pangpangfuzheng的专栏 2568

muduo 样例分析 线程模型

sudoku 每个socket都只在一个线程,避免线程冲突,由于epoll_wait时,一个socket由于读写不及时,多次被触发,不同线程读写同一个socketepoll_wait是线程安全的,et和lt都存在上面这个问题,建议如果同一socket可能在不同线程的,设为EPOLLONESHONT,单次触发,后面再epoll_ctl加入。 1、server_hybird.cc  主IO+ 读...

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值