jjzjj

【校招项目】基于C++11的muduo库

基于C++11的网络库文章目录基于C++11的网络库项目介绍项目地址项目特点开发环境并发模型构建项目运行案例模块讲解ChannelPollerEventLoopBufferTimerHTTP异步日志内存池数据库连接池优化计划感谢项目介绍本项目是参考muduo实现的基于Reactor模型的多线程网络库。使用C++11编写去除muduo对boost的依赖,内部实现了一个小型的HTTP服务器,可支持GET请求和静态资源的访问,且附有异步日志监控服务端情况。项目已经实现了Channel模块、Poller模块、事件循环模块、HTTP模块、定时器模块、异步日志模块、内存池模块、数据库连接池模块。项目地址h

基于主从模式的Reactor的仿muduo网络库

🌇个人主页:平凡的小苏📚学习格言:命运给你一个低的起点,是想看你精彩的翻盘,而不是让你自甘堕落,脚下的路虽然难走,但我还能走,比起向阳而生,我更想尝试逆风翻盘。🛸C++项目实战:C++项目实战>家人们更新不易,你们的👍点赞👍和⭐关注⭐真的对我真重要,各位路过的友友麻烦多多点赞关注。欢迎你们的私信提问,感谢你们的转发!关注我,关注我,关注我,你们将会看到更多的优质内容!!一、Http服务器认识概念HTTP(HyperTextTransferProtocol),超⽂本传输协议是应⽤层协议,是⼀种简单的请求-响应协议(客⼾端根据⾃⼰的需要向服务器发送请求,服务器针对请求提供服务,完毕后通信结束)。实

muduo源码阅读笔记(9、TcpServer)

muduo源码阅读笔记(9、TcpServer)Muduo源码笔记系列:muduo源码阅读笔记(0、下载编译muduo)muduo源码阅读笔记(1、同步日志)muduo源码阅读笔记(2、对C语言原生的线程安全以及同步的API的封装)muduo源码阅读笔记(3、线程和线程池的封装)muduo源码阅读笔记(4、异步日志)muduo源码阅读笔记(5、Channel和Poller)muduo源码阅读笔记(6、EvevntLoop和Thread)muduo源码阅读笔记(7、EventLoopThreadPool)muduo源码阅读笔记(8、定时器TimerQueue)muduo源码阅读笔记(9、TcpS

muduo源码剖析之TcpClient客户端类

简介muduo用TcpClient发起连接,TcpClient有一个Connector连接器,TCPClient使用Conneccor发起连接,连接建立成功后,用socket创建TcpConnection来管理连接,每个TcpClientclass只管理一个TcpConnecction,连接建立成功后设置相应的回调函数。很显然,TcpClient用来管理客户端连接,真正连接交给Connector。主要成员及属性解析主要接口回调setters这些回调函数会在新连接建立时,通过newConnection内部实现方法传递给TcpConnction对象核心实现:newConnection在构造时将这个

1.6.C++项目:仿muduo库实现并发服务器之channel模块的设计

项目完整版在:文章目录一、channel模块:事件管理Channel类实现二、提供的功能三、实现思想(一)功能(二)意义(三)功能设计四、代码(一)框架(二)完整一、channel模块:事件管理Channel类实现二、提供的功能1.对监控事件的管理描述符是否可读描述符是否可写对描述符监控可读对描述符监控可写解除可读事件监控解除可写事件监控解除所有事件监控2.对监控事件触发后的处理设置对于不同事件的回调处理函数明确触发了某个事件该如何处理三、实现思想(一)功能对socket套接字的操作进行封装。(二)意义对socket套接字的操作进行封装。(三)功能设计1.对监控事件的管理描述符是否可读描述符是

1.9.C++项目:仿muduo库实现并发服务器之Connection模块的设计

项目完整在:文章目录一、Connection模块:这是一个对于通信连接进行整体管理的一个模块,对一个连接的操作都是通过这个模块来进行!二、提供的功能三、实现思想(一)功能(二)意义(三)功能设计四、框架五、代码一、Connection模块:这是一个对于通信连接进行整体管理的一个模块,对一个连接的操作都是通过这个模块来进行!二、提供的功能Connection模块,一个连接有任何的事件怎么处理都是有这个模块来进行处理的,因为组件的设计也不知道使用者要如何处理事件,因此只能是提供一些事件回调函数由使用者设置。三、实现思想(一)功能发送数据——给用户提供的发生数据的接口,并不是真的发送接口,而只是把数

1.4.C++项目:仿muduo库实现并发服务器之buffer模块的设计

项目完整版在:一、buffer模块:缓冲区模块Buffer模块是一个缓冲区模块,用于实现通信中用户态的接收缓冲区和发送缓冲区功能。二、提供的功能存储数据,取出数据三、实现思想1.实现换出去得有一块内存空间,采用vector,vector底层是一个线性的内存空间!(一)要素1.默认空间大小2.当前的读取数据位置!3.当前的写入数据位置!(二)操作写入位置当前写入位置指向哪里,从哪里开始写入如果后续剩余空间不够了!考虑整体缓冲区空闲空间是否足够!(因为读位置也会向后偏移,前后有可能有空闲空间)足够:将数据移动到起始位置不够:扩容,从当前写位置开始扩容足够大小!数据一旦写入成功,当前写位置,向后偏移

一、C++项目:仿muduo库实现高性能高并发服务器

文章目录一、实现目标二、前置知识(一)HTTP服务器1.概念(二)Reactor模型:1.概念2.分类(1)单Reactor单线程:单I/O多路复用+业务处理。(2)单Reactor多线程:单I/O多路复⽤+线程池(业务处理)(三)目标定位-OneThreadOneLoop主从Reactor模型高并发服务器三、功能划分(一)SERVER模块:1.Buffer模块:(1)框架设计:(2)代码:2.Socket模块:(1)框架设计(2)代码3.Channel模块:4.Connection模块仿mudou库onethreadoneloop式并发服务器实现一、实现目标仿muduo库OneThreadO

长文梳理Muduo库核心代码及优秀编程细节剖析

一、前言:代码地址:https://github.com/yyg192/Cpp11-Muduo-MultiReactor Muduo库是陈硕个人开发的Tcp网络编程库,支持Reactor模型。本人前段时间出于个人学习目的用c++11重构了Muduo库中核心的Multi-Reactor架构。这篇博文对Muduo库中的Multi-reactor架构代码进行逻辑梳理,同时认真剖析了作者每一处精妙的代码设计思想。 目前我只重构并剖析了Muduo库中的核心部分,即Multi-Reactor架构部分。但是这部分已经足够支撑起一个基本的高并发TCP服务器的运行了。另外,Muduo库中剩余的rpc、HTTP等

一、重写muduo网络库之服务器编程及测试

目录一、基于muduo网络库开发服务器程序的基本步骤1、组合TcpServer对象2、创建EventLoop事件循环对象的指针3、明确TCPServer构造函数需要的参数,输出ChatServer的构造函数4、在当前服务器类的构造函数当中,注册处理连接的回调函数和处理读写事件的回调函数5、设置合适的服务端线程数量,muduo库会自己分配I/O线程和work线程二、测试代码今天开始,小鱼将和大家一起学习陈硕大佬的优秀开源项目------muduo网络库,并重写muduo网络库的一些重要的函数、类等代码,学习优秀的开源代码和编码思维。在学习muduo网络库之前,我们首先要知道muduo库如何使用,