![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Muduo
hello_ape
一只努力毕业拿到BAT offer的程序猿
展开
-
【Muduo源码分析】muduo的Tcpserver 和Acceptor 解读
本文章主要分析在Muduo网络库中,服务端如何建立连接的。首先看Tcpserver的构造函数(本系列主要基于示例程序而言,可能与最终的Muduo版本存在出入,但总体框架一致)TcpServer::TcpServer(EventLoop* loop, const InetAddress& listenAddr) : loop_(CHECK_NOTNULL(loop)), ...原创 2019-08-13 20:24:26 · 191 阅读 · 0 评论 -
【Muduo源码分析】muduo的EventLoop 解读
Muduo奉行的是每个one loop per thread,意思是每个线程只有一个EventLoop对象。在Muduo中,称创建了EventLoop对象的线程是IO线程。我主要关注大体框架,有些细节暂时不关注。首先看看构造函数(下列源码源自Muduo的教程示例)EventLoop::EventLoop() : looping_(false), quit_(false), ...原创 2019-08-13 21:51:44 · 445 阅读 · 0 评论 -
【Muduo源码分析】 解读muduo如何断开连接 TcpConnection
在muduo中只有一种连接断开方式,就是被动关闭,也就是套接字上read返回0.(当然现在也加上了主动关闭),本文探讨被动关闭的流程。首先TcpConnection::handleRead中,如果read 返回0,去执行handleClose。void TcpConnection::handleRead(Timestamp receiveTime){ loop_->asser...原创 2019-08-14 10:44:57 · 621 阅读 · 2 评论 -
【Muduo源码分析】 Muduo源码分析系列总览
本系列主要是分析Muduo网络库的执行流程,让大家有一个大致的认识。网络库主要是完成对三个半事件的关注。本系列的具体信息如下:连接的建立处理:https://mp.csdn.net/postedit/99467217连接的断开处理:https://blog.csdn.net/hello_ape/article/details/99482349数据的接收:https://blog....原创 2019-08-14 10:51:37 · 272 阅读 · 0 评论 -
【Muduo源码分析】 解读muduo如何接收消息 TcpConnection Buffer
本节处理消息的接收。消息的接收是被动事件,易于处理。首先讲解用户的消息处理函数注册过程。用户需要自己注册自己的消息接收处理函数。例如下面这样的消息回调函数。void onMessage(const muduo::TcpConnectionPtr& conn, muduo::Buffer* buf, muduo::Ti...原创 2019-08-14 11:20:57 · 286 阅读 · 0 评论 -
【Muduo源码分析】 解读muduo如何发送数据 TcpConnection Buffer
本文旨在讲述muduo网络库数据的发送流程。首先明确一点,Muduo中的epoll使用了水平触发方式,而不是边缘触发。TcpConnection首先需要增加应用层的缓冲区Buffer outputBuffer_; 我们看到在TcpConnection类内,提供了两个数据发送函数,分别是TcpConnection::send,TcpConnection::sendInLoop。前者...原创 2019-08-14 16:01:15 · 382 阅读 · 0 评论