Muduo 网络编程示例之一:五个简单 TCP 协议

这是《Muduo 网络编程示例》系列的第一篇文章。本文将介绍五个简单 TCP 网络服务协议的 muduo 实现,包括 echo (RFC 862)、discard (RFC 863)、chargen (RFC 864)、daytime (RFC 867)、time (RFC 868),以及 time 协议的客户端。以上五个协议使用不同的端口,可以放到同一个进程中实现,且不必使用多线程。...
阅读(15536) 评论(11)

Muduo 网络编程示例之零:前言

我将会写一系列文章,介绍用 muduo 网络库完成常见的 TCP 网络编程任务。这些例子都比较简单,逻辑不复杂,代码也很短,适合摘取关键部分放到博客上。其中一些有一定的代表性与针对性,比如“如何传输完整的文件”估计是网络编程的初学者经常遇到的问题。...
阅读(30719) 评论(29)

分布式系统的工程化开发方法

以下是我在珠三角技术沙龙 2010Q4 上的演讲投影片。...
阅读(56346) 评论(71)

并发编程的 15 条建议(译)

内核专家 Bryan Cantrill 和 Jeff Bonwick 在 2008 年 9 月的《ACM Queue》上发表了《Real-world Concurrency》 一文,提出了 15 条并发编程的建议,这里简单摘录如下。 1. Know your cold paths from your hot paths. 弄清楚代码里的热门执行路径和冷门执行路径。 对冷门路径,用粗粒度的锁即可。对热门路径——也就是那些必须高度并发才能实现所期望的高吞吐量的代码,应该更加小心,加锁的策略必须简单明了且细粒...
阅读(29689) 评论(52)

击鼓传花:对比 muduo 与 libevent2 的事件处理效率

前面我们比较了 muduo 和 libevent2 的吞吐量,得到的结论是 muduo 比 libevent2 快 18%。有人会说,libevent2 并不是为高吞吐的应用场景而设计的,这样的比较不公平,胜之不武。为了公平起见,这回我们用 libevent2 自带的性能测试程序(击鼓传花)来对比 muduo 和 libevent2 在高并发情况下的 IO 事件处理效率。 结论:在 IO 事件处理效率方面,muduo 与 libevent2 总体比较接近,各擅胜场。在并发量特别大的情况下(大于 10k),m...
阅读(17109) 评论(22)

muduo 与 libevent2 吞吐量对比

libevent 是一款非常好用的 C 语言网络库,它也采用 Reactor 模型,正好可以与 muduo 做一对比。 本文用 ping pong 测试来对比 muduo 和 libevent2 的吞吐量,测试结果表明 muduo 吞吐量平均比 libevent2 高 18% 以上,个别情况达到 70%。 ...
阅读(25580) 评论(21)

muduo 与 boost asio 吞吐量对比

muduo 是一个基于 Reactor 模式的 C++ 网络库,我在编写它的时候并没有以高并发高吞吐为主要目标,但出乎我的意料,ping pong 测试表明,muduo 吞吐量比 boost.asio 高 15% 以上。...
阅读(36896) 评论(45)

发布一个基于 Reactor 模式的 C++ 网络库

Muduo 是我在业余时间编写的基于 Reactor 模式的 C++ 网络库,适用于 Linux 平台,支持多线程。本文主要介绍 muduo 网络库的使用。其设计与实现将有另文讲解。...
阅读(75500) 评论(117)

发布一个 Linux 下的 C++ 多线程库

发布一个我自己业余时间编写的 C++ 多线程库 for Linux,这个库只有不到 1000 行源代码,封装了 pthreads 的常用功能(互斥器、条件变量、线程),实现了简单的线程池,并仿照 java concurrent 包编写了 BlockingQueue 和 CountDownLatch。库里的每个 class 都提供了使用样例。 这个库的内容:1. 整数的原子操作, AtomicInt32 和 AtomicInt64;2. 线程 Thread 和线程池 ThreadPool;3. 互斥器与条...
阅读(28591) 评论(56)

《程序中的日期与时间》第一章 日期计算

本文详细说明了以 Julian Day Number 为基础的日期处理的算法,解释了每个公式的意义,并用 C++ 语言实现了一个 Date class。...
阅读(13910) 评论(20)

计算机图书赠送

  最近清理出一批暂时用不上的计算机技术图书,准备送给需要它们的人。这些书大多是我 3 年前从北京搬到上海的,有的是我来上海之后买的。这些书有的我看过,更多的从买来就没有翻开。 赠送对象 1. 与我见过面吃过饭的技术人士、同学、朋友,或者 2. 没有见过面,但对技术感兴趣的人士(为了证明这一点,请向我展示您的技术博客) 赠送办法 1. 每人限选 2 本,少选不限 :) 2. 选好书之...
阅读(17116) 评论(76)

发布一个 Sockets 编程的交互式试验工具

学习 Sockets 网络编程的时候往往要写很多小程序来熟悉 api,触发各种时序,观察系统的行为。 最近在编写自己的 C++ 网络库,需要考察许多场景下 Sockets 系统调用的返回值。于是我写了一个简单的命令行交互式工具,用来手动触发各种边界条件。这让我能方便地观察系统的行为。 编译方法: 先安装 libreadline-dev $ sudo apt-get install libr...
阅读(6314) 评论(2)

整合 Google 开源 C++ 代码

  Google 开源了很多优秀的 C++ 程序库,本文介绍如何将其中几个整合到一起。 本文涉及的 Google 库有: gflags - 命令行参数解析。可以完全用命令行来配置应用程序,省去配置文件。 gtest - C++ 单元测试框架 gmock - C++ 单元测试中用到的 mock glog - 日志库 protobuf - 高效的网络协议格式...
阅读(33133) 评论(32)

对 C++ 历史的个人观点

先把 PPT 放出来,文章以后有空再写吧。 ...
阅读(18802) 评论(82)

学之者生,用之者死——ACE历史与简评

学之者生,用之者死——ACE历史与简评陈硕 (giantchen_AT_gmail)Blog.csdn.net/Solstice2010 March 10ACE 是现代面向对象网络编程的鼻祖,确立了许多重要模式,如 Reactor、Acceptor 等,重要到我们甚至觉得网络编程就应该是那样的。但为什么 ACE 叫好不叫座?大名鼎鼎却使用者寥寥?本文谈谈我的个人观点。ACE 是...
阅读(62418) 评论(214)

《多线程服务器的适用场合》例释与答疑

陈硕 (giantchen_AT_gmail) Blog.csdn.net/Solstice 2010 March 3 - rev 01 《多线程服务器的适用场合》(以下简称《适用场合》)一文在博客登出之后,有热心读者提出质疑,我自己也觉得原文没有把道理说通说透,这篇文章试图用一些实例来解答读者的疑问。我本来打算修改原文,但是考虑到已经读过的读者不一定会注意到文章的变动,干脆另写一...
阅读(15534) 评论(23)

多线程服务器的适用场合

陈硕 (giantchen_AT_gmail) Blog.csdn.net/Solstice 2010 Feb 28这篇文章原本是前一篇博客《多线程服务器的常用编程模型》(以下简称《常用模型》)计划中的一节,今天终于写完了。“服务器开发”包罗万象,本文所指的“服务器开发”的含义请见《常用模型》一文,一句话形容是:跑在多核机器上的 Linux 用户态的没有用户界面的长期运行的网络应用...
阅读(25601) 评论(48)

Linux 新增系统调用的启示

最近在研究 Linux 内核的时间子系统,为下一篇长文《服务器程序中的日期与时间》做准备,无意中注意到了 Linux 新增的几个系统调用的对编写服务器代码的影响,先大致记录在这里。这篇博客也可算作前一篇《多线程服务器的常用编程模型》的一个注脚。 1. 服务器程序的风格可能在变 新的创建文件描述符的 syscall 一般都支持额外的 flags 参数,可以直接指定 O_NONBLOCK 和 FD...
阅读(13358) 评论(9)

多线程服务器的常用编程模型

 多线程服务器的常用编程模型 陈硕 (giantchen_AT_gmail)Blog.csdn.net/Solstice2009 Feb 12 建议阅读本文 PDF 版下载: http://files.cppblog.com/Solstice/multithreaded_server.pdf 本文主要讲我个人在多线程开发方面的一些粗浅经验。总结了一两种常...
阅读(74178) 评论(33)

当析构函数遇到多线程──C++ 中线程安全的对象回调

 当析构函数遇到多线程── C++ 中线程安全的对象回调 陈硕 (giantchen_AT_gmail)Blog.csdn.net/Solstice请尽量阅读本文 PDF 版:http://www.cppblog.com/Files/Solstice/dtor_meets_mt.pdf 豆丁亦可,内容略微滞后: http://www.docin.com/p-42460300...
阅读(37051) 评论(63)
149条 共8页首页 上一页 1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:3220905次
    • 积分:24447
    • 等级:
    • 排名:第247名
    • 原创:144篇
    • 转载:3篇
    • 译文:2篇
    • 评论:3332条
    公告
    本人博客的文章均为原创作品,除非另有声明。个人转载或引用时请保留本人的署名及博客网址,商业转载请事先联系。我不使用即时聊天工具。也请不要用 CSDN 站内信、私信、短消息或者留言功能跟我联系。我的 gmail 用户名是 giantchen,微博 http://weibo.com/giantchen。
    陈硕的微博
    最新评论
    g