陈硕的Blog

吾尝终日而思矣,不如须臾之所学也。吾尝跂而望矣,不如登高之博见也。……君子生非异也,善假于物也。 @bnu_chenshuo...

排序:
默认
按更新时间
按访问量

Muduo 网络编程示例之六:限制服务器的最大并发连接数

Muduo 网络编程示例之六:限制服务器的最大并发连接数 陈硕 (giantchen_AT_gmail) Blog.csdn.net/Solstice  t.sina.com.cn/giantchen 这是《Muduo 网络编程示例》系列的第六篇文章。 Muduo 全系列文章列表: htt...

2011-04-27 00:05:00

阅读数:8679

评论数:14

分布式程序的自动化回归测试

以单独的进程作为 test harness 对于开发分布式程序相当有帮助,它能达到单元测试的自动化程度和细致程度,又避免了单元测试对功能代码结构的侵入与依赖。

2011-04-25 00:28:00

阅读数:13220

评论数:17

“过家家”版的移动离线计费系统实现

看到一道热烈讨论的“移动用户资费统计系统”编程面试题,本文给出我的做法。 http://blog.csdn.net/zhangxiaoxiang/archive/2011/04/06/6304117.aspx 为避免版权纠纷,我这里就不引用原文了。   完整的代码见 https://gith...

2011-04-22 15:16:00

阅读数:4662

评论数:3

Muduo 网络编程示例之五: 测量两台机器的网络延迟

Muduo 网络编程示例之五: 测量两台机器的网络延迟 陈硕 (giantchen_AT_gmail) Blog.csdn.net/Solstice  t.sina.com.cn/giantchen 这是《Muduo 网络编程示例》系列的第五篇文章。 Muduo 全系列文章列表: http...

2011-04-20 09:27:00

阅读数:10067

评论数:8

Muduo 设计与实现之一:Buffer 类的设计

本文介绍 Muduo 中输入输出缓冲区的设计与实现。 本文中 buffer 指一般的应用层缓冲区、缓冲技术,Buffer 特指 muduo::net::Buffer class。 本文前两节的内容已事先发表在 muduo 英文博客 http://muduo.chenshuo.com/2011/...

2011-04-17 12:26:00

阅读数:27056

评论数:99

模拟银行窗口排队叫号系统的运作

最近在网上看到了一道面试题,初看很简单,细看有点意思的一道题目: http://blog.csdn.net/zhangxiaoxiang/archive/2011/04/01/6294132.aspx 为避免版权纠纷,我这里就不引用原文了。   各人对题目的理解不一样,我把它当成一道离散事...

2011-04-15 09:13:00

阅读数:29055

评论数:71

在 muduo 中实现 protobuf 编解码器与消息分发器

陈硕 (giantchen_AT_gmail) Blog.csdn.net/Solstice  t.sina.com.cn/giantchen Muduo 全系列文章列表: http://blog.csdn.net/Solstice/category/779646.aspx 本文是《一种自动...

2011-04-13 08:12:00

阅读数:22124

评论数:37

一种自动反射消息类型的 Google Protobuf 网络传输方案

这篇文章要解决的问题是:在接收到 protobuf 数据之后,如何自动创建具体的 Protobuf Message 对象,再做的反序列化。“自动”的意思是:当程序中新增一个 protobuf Message 类型时,这部分代码不需要修改,不需要自己去注册消息类型。其实,Google Protobu...

2011-04-03 15:57:00

阅读数:72148

评论数:128

构建易于维护的分布式程序

陈硕 (giantchen_AT_gmail) Blog.csdn.net/Solstice 摘要:本篇博客没有新东西,只不过是把去年在珠三角技术沙龙做的一次演讲的其中一张 ppt 展开讲一讲。 本文标题中的“易于维护”指的是 supportability,不是 maintainabilit...

2011-03-30 00:03:00

阅读数:17280

评论数:19

分布式系统中的进程标识

昨天跟朋友聊天,谈到了分布式系统中如何为进程取标识符(process identifier),写篇博客简单总结一下我的观点:以四元组 ip:port:start_time:pid 作为分布式系统中进程的全局唯一标识符(gpid)

2011-03-29 01:29:00

阅读数:14821

评论数:47

C++ 工程实践(5):避免使用虚函数作为库的接口

摘要:作为 C++ 动态库的作者,应当避免使用虚函数作为库的接口。这么做会给保持二进制兼容性带来很大麻烦,不得不增加很多不必要的 interfaces,最终重蹈 COM 的覆辙。 本文主要讨论 Linux x86 平台,会继续举 Windows/COM 作为反面教材。 本文是上一篇《C++ 工...

2011-03-12 22:01:00

阅读数:21389

评论数:111

C++ 工程实践(4):二进制兼容性

陈硕 (giantchen_AT_gmail) Blog.csdn.net/Solstice 本文主要讨论 Linux x86/x86-64 平台,偶尔会举 Windows 作为反面教材。 C/C++ 的二进制兼容性 (binary compatibility) 有多重含义,本文主要在“头...

2011-03-09 10:46:00

阅读数:23081

评论数:61

C++ 工程实践(3):采用有利于版本管理的代码格式

版本管理(version controlling)是每个程序员的基本技能,C++ 程序员也不例外。版本管理的基本功能之一是追踪代码变化,让你能清楚地知道代码是如何一步步变成现在的这个样子,以及每次 check-in 都具体改动了哪些内部。所谓“有利于版本管理”的代码格式,就是指在代码中合理使用换...

2011-03-05 15:16:00

阅读数:14080

评论数:26

为什么 muduo 的 shutdown() 没有直接关闭 TCP 连接?

今天收到一位网友来信:在 simple 中的 daytime 示例中,服务端主动关闭时调用的是如下函数序列,这不是只是关闭了连接上的写操作吗,怎么是关闭了整个连接?陈硕答复如下: Muduo TcpConnection 没有提供 close,而只提供 shutdown ,这么做是为了收发数据的完...

2011-02-25 21:30:00

阅读数:10850

评论数:7

Muduo 网络编程示例之四:Twisted Finger

Python Twisted 是一款非常好的网络库,它也采用 Reactor 作为网络编程的基本模型,所以从使用上与 muduo 颇有相似之处。(当然,muduo 没有 deferreds)Finger 是 twisted 文档的一个经典例子,本文展示如何用 muduo 来实现最简单的 finge...

2011-02-23 21:34:00

阅读数:6695

评论数:3

C++ 工程实践(2):不要重载全局 ::operator new()

对于现实生活中的 C++ 项目,重载 ::operator new() 几乎没有用武之地,因为很难处理好与程序所用的 C++ library 的关系。如果确实需要,我们可以从 malloc 层面入手,彻底而全面地替换内存分配器。

2011-02-22 01:23:00

阅读数:17000

评论数:28

C++ 工程实践(1):慎用匿名 namespace

匿名 namespace (anonymous namespace 或称 unnamed namespace) 是 C++ 的一项非常有用的功能,其主要目的是让该 namespace 中的成员(变量或函数)具有独一无二的全局名称,避免名字碰撞 (name collisions)。一般在编写 .cp...

2011-02-15 22:56:00

阅读数:29791

评论数:59

C++ 多线程系统编程精要

这是一套紧凑的 PPT,基本上每一张幻灯片都可以单独写一篇博客,但是我没有那么多时间一一展开论述,只能把结论和主要论据列了出来。

2011-02-12 18:42:00

阅读数:29024

评论数:30

Muduo 网络编程示例之三:定时器

本文介绍在非阻塞网络编程中定时器的用法与注意事项。

2011-02-06 23:05:00

阅读数:14614

评论数:20

Muduo 网络编程示例之二:Boost.Asio 的聊天服务器

这是《Muduo 网络编程示例》系列的第二篇文章。 本文讲介绍一个与 Boost.Asio 的示例代码中的聊天服务器功能类似的网络服务程序,包括客户端与服务端的 muduo 实现。这个例子的主要目的是介绍如何处理分包,并初步涉及 Muduo 的多线程功能。

2011-02-04 08:58:00

阅读数:19598

评论数:11

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