自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 从epoll构建muduo-1 mini-muduo介绍

前段时间看了陈硕写的muduo网络库(github, 书, blog),觉得这是一个学习网络编程的非常好的素材。为了更好的了解这个库,自己花了点时间,模仿其源码从零开始编写了一个极小的mini-muduo(起这名字没版权问题吧:-)),代码编写过程中有很多收获,我打算写几篇文章记录下心得。有几个问题先说明一下:Q1:网络库很多,为什么选择muduo?    1 库的功能相对完整,基

2013-04-10 16:36:51 14184 5

原创 从epoll构建muduo-8 加入发送缓冲区和接收缓冲区

mini-muduo v0.07版本,这个版本是加入了发送缓冲区和接收缓冲区的初始版本,后续v0.08完善了缓冲区的实现。mini-muduo完整可运行的示例可从github下载,使用命令git checkout v0.07可切换到此版本,在线浏览此版本到这里1 为什么要有发送缓冲区和接收缓冲区,muduo作者已经在>节中详细介绍过了。建议有条件的同学直接看书。我觉得这部分知识非常重要所以

2013-04-27 17:24:25 3761 5

原创 从epoll构建muduo-7 加入IMuduoUser

mini-muduo v0.06版本,这个版本应该算是一个里程碑版本,最重要的修改是将库和库的用户分离。完整可运行的示例可从github下载,使用命令git checkout v0.06可切换到此版本,在线浏览此版本到这里1 在这个版本中,我们的网络库才真正的能被称为“库”。整个mini-muduo程序现在被分成了两部分,一边是库,另一边是库的用户。EchoServer这个类就是用户了,用户关

2013-04-25 16:50:00 3024 1

原创 从epoll构建muduo-6 加入EventLoop和Epoll

mini-muduo v0.05版本,完整可运行的示例可从github下载,使用命令git checkout v0.05可切换到此版本,在线浏览此版本到这里 本版将程序的主要类都加入进来了,这个版本可以作为一个里程碑版本,最重要的修改是加入了两个类EventLoop和Epoll。加入这两个类后,程序代码逻辑就相对清晰多了。为了有个更直观的了解,我们对照之前介绍的最简单epoll示例(从epoll构

2013-04-24 00:11:07 3874 2

原创 从epoll构建muduo-5 加入Acceptor和TcpConnection

mini-muduo v0.04版本,这是个版本最重要的修改是加入了两个类Acceptor和TcpConnection。完整可运行的示例可从github下载,使用命令git checkout v0.04可切换到此版本,在线浏览此版本到这里1 回顾下v0.03版本,所有的socket事件都是在TcpServer::OnIn(命名不规范后续会改动)里处理的,包括接受新连接和读写数据,那实在是没

2013-04-16 23:15:21 3375

原创 从epoll构建muduo-4 加入Channel

mini-muduo v 0.03版本,这是个版本最重要的修改是加入了一个名为Channel的类。完整可运行的示例可从github下载,使用命令git checkout v0.03可切换到此版本,在线浏览此版本到这里介绍一下Channel类,先看其声明,这里特别要注意_events和_revents,前者是要关注的事件,后者是发生的事件,不仔细看容易混淆。名字的来源是poll(2)的struc

2013-04-15 12:56:58 4463

原创 从epoll构建muduo-3 加入第一个类,顺便介绍reactor

mini-muduo v 0.02版本,这个版本添加的内容非常少,完整可运行的示例可从github下载,使用命令git checkout v0.02可切换到此版本,在线浏览到这里#include "TcpServer.h"int main(int args, char** argv){ TcpServer tcpserver; tcpserver.start();

2013-04-13 00:01:14 4530

原创 从epoll构建muduo-2 最简单的epoll

mini-muduo v 0.01版本,这是mini-muduo的第一个版本,整个程序是一个100行的epoll示例下面粘贴的代码省略了头文件引用,完整可运行的示例可从github下载,使用命令git checkout v0.01可切换到此版本,在线浏览到这里#define MAX_LINE 100#define MAX_EVENTS 500#define MAX_LISTENFD

2013-04-12 14:07:58 6005 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除