摘要:《Linux 多线程服务端编程:使用 muduo C++ 网络库》 电子版已在京东和亚马逊上市销售。京东购买地址:http://e.jd.com/30149978.html亚马逊Kindle版:http://www.amazon.cn/dp/B00FF1XYJI京东阅读效果:PCiPad目前京东的阅读器没有切白边功能,值得改进。
阅读全文
摘要:《Linux多线程服务端编程:使用muduo C++网络库》这本书自今年一月上市以来,半年之内已经重印两次(加上首印,一共是三次印刷),总印数达到了9000册,这在技术书里已经算是相当不错的成绩。以下谈一谈这本书的写作背景与内容取舍的原因。
阅读全文
摘要:去年我写了《Muduo 网络编程示例》系列文章,这些文章已经收入《Linux 多线程服务端编程:使用 muduo C++ 网络库》一书。这些文章讲的基本都是运行在单机上的网络程序,每个例子都只有一个程序(第7.13节例外)。我接下来打算继续写几篇文章,谈一谈分布在多台机器上、协作发挥作用的网络编程例子。今天先讲第一个,单词计数及排序。单词计数(word count),顾名思义就是统计一个文本文件里边每个词出现了多少次。排序指的是按出现次数从多到少排序,也可以把问题改为“找出出现次数最多的1000个单词”。这个问题有三个层次,第一是输入文件比较小,能完全放入内存;第二是输入文件比较大,不能一次性
阅读全文
摘要:内容简介本书主要讲述采用现代 C++ 在 x86-64 Linux 上编写多线程 TCP 网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即 one loop per thread。这是在 Linux 下以 native 语言编写用户态高性能网络程序最成熟的模式,掌握之后可顺利地开发各类常见的服务端网络应用程序。本书以 muduo 网络库为例,讲解这种编程模型的使用方法及注意事项。本书的宗旨是贵精不贵多。掌握两种基本的同步原语就可以满足各种多线程同步的功能需求,还能写出更易用的同步设施。掌握一种进程间通信方式和一种多线程网络编程模型就足以应对日常开发任务,编写运行于
阅读全文
摘要:看完了 W. Richard Stevens 的传世经典《UNIX 网络编程》, 能照着例子用 Sockets API 编写 echo 服务, 却仍然对稍微复杂一点的网络编程任务感到无从下手? 书中示例代码把业务逻辑和 Sockets 调用混在一起,似乎不利于将来扩展?程序在本机测试正常,放到网络运行上就经常出现数据收不全的情况?TCP 协议真的有所谓的“粘包问题”吗?该如何设计打包拆包的协议?又该如何编码实现才不会掉到陷阱里?带外数据(OOB)、信号驱动IO这些高级特性到底有没有用?网络协议格式该怎么设计?发送 C struct 会有对齐方面的问题吗?对方不用 C/C++ 怎么通信? 将来服
阅读全文
摘要:2012年6月30日下午将在深圳做《Muduo 网络库:现代非阻塞C++网络编程》演讲,这是PPT:http://www.slideshare.net/chenshuo/muduo-network-library演讲视频:http://v.youku.com/v_show/id_XNDIyNDc5MDMy.htmlhttp://youtu.be/YDnCAs894Bg活动介绍:http://ouropensource.51qiangzuo.com/
阅读全文
摘要:PPT 见http://www.slideshare.net/chenshuo/efficient-logging-in-multithreaded-c-server/2012年6月30日在深圳的简短演讲:http://v.youku.com/v_show/id_XNDIyMjUwMDYw.htmlhttp://www.youtube.com/watch?v=KM_eQ6uRYdU代码位于 muduo 网络库中的 muduo/basehttps://github.com/chenshuo/muduomuduo 0.5.0 也包含了这个日志库http://code.google.com/p/mu
阅读全文
摘要:本文以一个 Sudoku Solver 为例,回顾了并发网络服务程序的多种设计方案,并介绍了使用 muduo 网络库编写多线程服务器的两种最常用手法。以往的例子展现了 Muduo 在编写单线程并发网络服务程序方面的能力与便捷性,今天我们看一看它在多线程方面的表现。
阅读全文
摘要:本文谈一谈我在学习网络编程方面的一些个人经验。“网络编程”这个术语的范围很广,本文指用Sockets API开发基于TCP/IP的网络应用程序。1. 网络编程的一些胡思乱想,谈谈我对这一领域的认识 2. 几本必看的书,基本上还是W. Richard Stevents那几本
阅读全文
摘要:本文介绍用 muduo 实现一个简单的 socks4a 代理服务器
阅读全文
摘要:本文介绍用 muduo 实现一个简单的 topic-based 消息广播服务,这其实是“聊天室”的一个简单扩展,不过聊天的不是人,而是分布式系统中的程序。
阅读全文
摘要:本文介绍如何使用 timing wheel 来踢掉空闲的连接,一个连接如果若干秒没有收到数据,就认为是空闲连接。
阅读全文
摘要:本文介绍如何使用 test harness 来测试一个具有内部逻辑的网络服务程序。
阅读全文
摘要:Muduo 网络编程示例之六:限制服务器的最大并发连接数陈硕 (giantchen_AT_gmail)Blog.csdn.net/Solstice t.sina.com.cn/giantchen这是《Muduo 网络编程示例》系列的第六篇文章。Muduo 全系列文章列表: http://blog.csdn.net/Solstice/category/779646.aspx本文已以大家都熟悉的 EchoServer 介绍如何限制服务器的并发连接数。本文的代码见 http://code.google.com/p/muduo/source/browse/trunk/examples/maxconne
阅读全文
摘要:本文介绍一个简单的网络程序 roundtrip,用于测量两台机器之间的网络延迟,即“往返时间 / round trip time / RTT”。这篇文章主要考察定长 TCP 消息的分包,TCP_NODELAY 的作用。
阅读全文
摘要:本文介绍 Muduo 中输入输出缓冲区的设计与实现。
阅读全文
摘要:本文介绍如何将前文介绍的 protobuf 打包方案与 muduo::net::Buffer 结合,实现 protobuf codec 与 message dispatcher。
阅读全文
摘要:陈硕 (giantchen_AT_gmail)Blog.csdn.net/SolsticeMuduo 全系列文章列表: http://blog.csdn.net/Solstice/category/779646.aspx今天收到一位网友来信:在 simple 中的 daytime 示例中,服务端主动关闭时调用的是如下函数序列,这不是只是关闭了连接上的写操作吗,怎么是关闭了整个连接? 1: void DaytimeServer::onConnection(const muduo::net::TcpConnectionPtr& conn) 2: { 3: if (conn->conn
阅读全文
摘要:陈硕 (giantchen_AT_gmail)Blog.csdn.net/Solstice这是《Muduo 网络编程示例》系列的第四篇文章。Muduo 全系列文章列表: http://blog.csdn.net/Solstice/category/779646.aspx Python Twisted 是一款非常好的网络库,它也采用 Reactor 作为网络编程的基本模型,所以从使用上与 muduo 颇有相似之处。(当然,muduo 没有 deferreds)Finger 是 twisted 文档的一个经典例子,本文展示如何用 muduo 来实现最简单的 finger 服务端。限于篇幅,只实现
阅读全文
摘要:本文介绍在非阻塞网络编程中定时器的用法与注意事项。
阅读全文