探索muduo
Immortal_s
这个作者很懒,什么都没留下…
展开
-
针对加入用户的muduo的理解
首先,这个“用户”指的是服务器那边,我理解为是对接收到的数据处理的过程,区分另一个词“网络库”。“网络库”的作用就知识单纯的保证数据接收和发送的完整性。 引入用户的概念之后,简易版muduo库就显得很好理解了。 首先 main函数启动了一个用户(EchoServer),和一个网络库的核心循环(EventLoop) 然后用户启动TcpServer()->Acceptor()建立起监听,并且...原创 2018-09-23 17:16:15 · 127 阅读 · 0 评论 -
muduo入门 -- Reactor模式
最近开学,忙了好一阵子,然后就是每天各种不停的上课,一直也没在实验室待着。好不容易趁着有时间把Reactor模式看了看。然后简单的照着muduo写了个例子,算是初步入门吧。 文件还挺多的,但是每个文件有他自己的作用,先说下 具体文件 main.cc //1 主文件 负责新建一个EventLoop对象和TcpServer对象,并分别执行他们的start()和loop()函数 TcpServ...原创 2018-09-22 20:58:31 · 935 阅读 · 0 评论 -
整理下muduo主要类的实现思路
文章目录TcpConnectionBufferLogThreadPool定时器限制并发连接 TcpConnection 唯一一个用智能指针控制声明周期的类,找了好久才找到什么时候结束。在TcpServer里面会有保存Conn的一个智能指针,所以引用计数一直为1。 当你收到对端关闭的消息的时候,因为是在handleEvent()里面,不能直接析构,所以TcpConnection::handleClo...原创 2019-07-04 11:31:47 · 245 阅读 · 0 评论 -
对muduo库的一些思考
结论 以前总觉得muduo写的不错,以后用这个就可以了,但是现在看来,muduo还是有点单薄。 原因 原因是什么呢,是上次开会,老板说了一种场景。客户端C1向服务端S1发起登录请求,但是S1要先向S2请求C1是否在黑名单,S2返回数据之后S1才能响应C1的请求。 阻塞肯定是可以完成的,现在考虑的是非阻塞的情况。那么非阻塞的话,S1就不能用epoll主线程来完成这项操作。那么办法就只有通过Task...原创 2019-07-15 21:46:47 · 264 阅读 · 0 评论