![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
muduo网络库源码学习
。
看,未来
墨家学徒
展开
-
IO缓冲区设计 -- from muduo
文章目录Buffer 设计要点放码过来1、缓冲区分段介绍2、缓冲区构造3、线程安全问题内存整理append长度不够用了怎么办?栈上空间的使用Buffer 设计要点1、对外表现为一块连续的内存。2、长度可自行增长,以适应不同大小的消息。3、内部以vector<char>保存数据,而不是string。在网络编程中,如何设计并使用缓冲区?一方面我们希望减少系统调用,一次读的数据越多越好;另一方面我们又希望减少内存占用,大多数时候大块缓冲区的利用率很低。muduo利用read + 栈上空间解.原创 2021-09-24 21:12:25 · 490 阅读 · 0 评论 -
从实例看muduo网络库各模块交互过程
文章目录muduo网络库的核心代码模块各模块功能解释ChannelPollerEpollPollerEventLoopEventLoopThreadEventLoopThreadPoolTcpServerTcpConnection从实际应用出发muduo网络库的核心代码模块1、channel2、Poller 和它的子类 EpollPoller3、EventLoop4、Thread、EventLoopThread、EventLoopThreadPool5、Sock、Acceptor6、Buff.原创 2021-09-19 00:11:20 · 1033 阅读 · 9 评论 -
缩略muduo库(9):TcpServer
准备讲解了,这里就直接放代码吧。#pragma once#include "EventLoop.hpp"#include "Accept.hpp"#include "EventLoopThreadPool.hpp"#include "InetAddr.hpp"#include "nocopyable.hpp"#include "callback.hpp"#include <string>#include <functional>#include <ato原创 2021-09-13 16:39:15 · 263 阅读 · 0 评论 -
缩略muduo库(8):TcpConnection
最近VScode坏了,莫名其妙连不上虚拟机了,很难受。已经判定不是Linux的问题,因为用cmd可以远程连接上。所以这份就用VS先顶一下了,报了一堆的错也看不清楚。文章目录CallBack.hppTcpConnection.hppTcpConnection.ccCallBack.hpp存放一些回调声明。#pragma once#include <functional>class Buffer;class TcpConnection;class timestamp;u原创 2021-09-09 10:31:36 · 316 阅读 · 0 评论 -
缩略muduo库(7):Buffer 缓冲区
#pragma once/// A buffer class modeled after org.jboss.netty.buffer.ChannelBuffer////// @code/// +-------------------+------------------+------------------+/// | prependable bytes | readable bytes | writable bytes |/// | |原创 2021-09-06 20:22:07 · 339 阅读 · 0 评论 -
缩略moduo库(6):acceptor
文章目录SocketAcceptorSocket#pragma once#include "nocopyable.hpp"class InetAddress;//封装sockfdclass Socket:public nocpoyable{public: explicit Socket(int sockfd) :sockfd_(sockfd) {} ~Socket(); int fd(){ return sockfd_;}原创 2021-09-05 15:06:11 · 267 阅读 · 0 评论 -
缩略muduo库(5):Thread、EventThread、EventThreadPool
文章目录ThreadEventLoopThreadEventLoopThreadPoolThread#pragma once#include "nocopyable.hpp"#include <functional>#include <thread>#include <memory>#include <unistd.h>#include <string>#include <atomic>class Thread原创 2021-09-05 14:02:22 · 407 阅读 · 0 评论 -
缩略muduo库(4):事件循环 EventLoop
每一个线程都有一个EventLoop,每个loop里面都会有很多的channel,每个channel的任务都要在自己的线程中完成。为了管理这些线程,设置了一份获取线程ID的代码,辅助管理。...原创 2021-09-04 14:26:43 · 335 阅读 · 0 评论 -
缩略muduo网络库(3)事件分发器poller
在muduo的EventLoop里面有一个poller和一堆的channel,其实这个poller是一个抽象基类,子类有poll和epoll。大抵是二者其实都有有点,可以兼顾吧。来看看其中巧夺天工的设计实现。原创 2021-09-01 17:49:26 · 348 阅读 · 0 评论 -
缩略版muduo网络库(2):事件处理器 Chanel
负责具体事件处理原创 2021-08-31 17:58:22 · 310 阅读 · 0 评论 -
缩略muduo网络库(1)周边小代码
nocopyable Logger Timestamp InetAddr原创 2021-08-31 12:29:50 · 366 阅读 · 0 评论