muduo

2024/4/11 19:25:33

muduo源码剖析之Socket类

Socket 封装了一个sockfd相关的设置 比较简单,已经编写注释 // Copyright 2010, Shuo Chen. All rights reserved. // http://code.google.com/p/muduo/ // // Use of this source code is governed by a BSD-style license // that can be found in the License file.// Aut…

基于muduo网络库开发服务器程序 笔记

跟着施磊老师做C项目,施磊老师_腾讯课堂 (qq.com) 一、基于muduo网络库开发服务器程序 组合TcpServer对象创建EventLoop事件循环对象的指针明确TcpServer构造函数需要什么参数,输出ChatServer的构造函数在当前服务器类的构造函数当中,注册处理连接的回调函数和处理…

muduo源码剖析之SocketOps类

SocketOps 对socket设置API的封装 比较简单,已经编写注释 // Copyright 2010, Shuo Chen. All rights reserved. // http://code.google.com/p/muduo/ // // Use of this source code is governed by a BSD-style license // that can be found in the License file.// Autho…

C++集群聊天服务器 muduo+nginx+redis+mysql数据库连接池 笔记 (下)

C集群聊天服务器 网络模块业务模块CMake构建项目 笔记 (上)-CSDN博客https://blog.csdn.net/weixin_41987016/article/details/135991635?spm1001.2014.3001.5501C集群聊天服务器 数据模块业务模块CMake构建项目 笔记 (上)-CSDN博…

Muduo库编译学习(1)

1.muduo库简介 muduo是由Google大佬陈硕开发,是一个基于非阻塞IO和事件驱动的现代C网络库,原生支持one loop per thread这种IO模型,该库只支持Linux系统,网上大佬对其褒贬不一,作为小白用来学习就无可厚非了。 git仓库…

muduo源码剖析之InetAddress

InetAddress InetAddress 类是 muduo 网络库中的一个重要类,用于表示网络中的 IP 地址和端口号。 InetAddress 类在 muduo 网络库中被广泛使用,用于表示网络中的通信实体的地址信息,例如服务器地址、客户端地址等。通过 InetAddress 类&…

muduo源码剖析之TimerQueue类

简介 TimerQueue ​ 通过timerfd实现的定时器功能,为EventLoop扩展了一系列runAt,runEvery,runEvery等函数TimerQueue中通过std::set维护所有的Timer,也可以使用优先队列实现 muduo的TimerQueue是基于timerfd_create实现&#…

1. 使用poll或epoll创建echo服务器

1. 说明&#xff1a; 此篇博客主要记录一种客户端实现方式&#xff0c;和两种使用poll或者epoll分别创建echo服务器的方式&#xff0c;具体可看代码注释&#xff1a; 2. 相关代码&#xff1a; 2.1 echoClient.cpp #include <iostream> #include <cstdio> #incl…

muduo库的高性能日志库(三)——Logging文件

目录SourceFile内部类Impl内部类内部实现细节Logger类1. 规定日志的几个等级2. 两个内部类3. 设置日志属性4. 构造函数5. 析构函数日志宏接下看一下Logging文件&#xff0c;该文件主要负责全局日志级别&#xff0c;输出目的地设置 Logger内有两个内部类 SourceFile&#xff0c;…

muduo源码剖析之TcpClient客户端类

简介 muduo用TcpClient发起连接&#xff0c;TcpClient有一个Connector连接器&#xff0c;TCPClient使用Conneccor发起连接, 连接建立成功后, 用socket创建TcpConnection来管理连接, 每个TcpClient class只管理一个TcpConnecction&#xff0c;连接建立成功后设置相应的回调函数…

基于muduo网络库开发服务器程序和CMake构建项目 笔记

跟着施磊老师做C项目&#xff0c;施磊老师_腾讯课堂 (qq.com) 一、基于muduo网络库开发服务器程序 组合TcpServer对象创建EventLoop事件循环对象的指针明确TcpServer构造函数需要什么参数,输出ChatServer的构造函数在当前服务器类的构造函数当中,注册处理连接的回调函数和处理…

muduo源码剖析之EventLoopThreadPool

简介 EventLoopThreadPool是EventLoopThread类的线程池类 封装了若干个EventLoopThread的线程池&#xff0c;所有者是一个外部的EventLoop EventLoopThreadPool EventLoopThread vector 主要成员及属性解析 通过调用start函数来new EventLoopThread创建对应的线程和其lo…

muduo源码剖析之Acceptor监听类

简介 Acceptor类用于创建套接字&#xff0c;设置套接字选项&#xff0c;调用socket()->bind()->listen()->accept()函数&#xff0c;接受连接&#xff0c;然后调用TcpServer设置的connect事件的回调。 listen()//在TcpServer::start中调用 封装了一个listen fd相关…

Muduo + ProtoBuffer的使用

Google Protocol Buffer&#xff08;简称protobuf&#xff09;是Google内部混合语言数据标准&#xff0c;protobuf是一种紧凑的可扩展的二进制消息格式&#xff0c;适合做网络数据传输、数据存储的消息格式&#xff08;摘自网络&#xff09;。这里不介绍protobuf的基本用法&…

2.面向对象编程风格

1. 说明 此博客记录如何以面向对象的方式进行编程&#xff0c;以及如何让线程和线程对象同时销毁 2. 相关代码&#xff1a; 2.1 Thread.h #ifndef _THREAD_H_ #define _THREAD_H_#include <pthread.h>class Thread { public:Thread();virtual ~Thread();void Start()…

muduo源码剖析之Connector客户端连接类

简介 Connector负责主动发起连接,不负责创建socket,只负责连接的建立,外部调用Connector::start就可以发起连接&#xff0c;Connector具有重连的功能和停止连接的功能&#xff0c;连接成功建立后返回到TcpClient。 主要成员及属性解析 主要接口 setNewConnectionCallback …

muduo源码剖析之EventLoop事件循环类

简介 EventLoop.cc就相当于一个reactor&#xff0c;多线程之间的函数调用(用eventfd唤醒)&#xff0c;epoll处理&#xff0c;超时队列处理&#xff0c;对channel的处理。运行loop的进程被称为IO线程&#xff0c;EventLoop提供了一些API确保相应函数在IO线程中调用&#xff0c;…

muduo源码剖析之TcpConnection连接管理

简介 TcpConnection 用于管理一个具体的 TCP 连接&#xff0c;比如消息的接收与发送&#xff0c;完成用户指定的连接回调 connectionCallback。 TcpConnection 有四个状态&#xff0c;简单的状态图&#xff1a; 成员及属性解析 主要接口 send 发送数据的主要接口&#xf…

在windows和Linux中的安装 boost 以及 安装 muduo

二、安装boost boost官网&#xff1a;boost官网 我下载的boost版本&#xff1a; windows:boost_1_84_0.ziplinux:boost_1_84_0.tar.gz 2.1 在windows中安装boost和测试 &#xff08;1&#xff09;在windows中&#xff0c;解压这个压缩包boost_1_84_0.zip&#xff0c;路径为…

muduo源码剖析之AsyncLogging异步日志类

简介 AsyncLogging是muduo的日志&#xff0c;程序如果直接让文件写日志可能会发生阻塞&#xff0c;muduo前端设计了2个BufferPtr&#xff0c;分别是currentBuffer_和nextBuffer_&#xff0c;还有一个存放BufferPtr的vector(buffers_)。 多个前端线程往currentBuffer_写数据&a…

muduo网络库源码分析——整体架构

muduo的源代码中&#xff0c;虽然不考虑可移植性&#xff0c;但还是划分了很多小的类&#xff08;Channel、Socket、TcpConnection、Acceptor&#xff0c;不知道是不是参考了java中的概念&#xff09;&#xff0c;类之间大量通过boost::bind()注册回调函数&#xff0c;感觉比继…