摘要:陈硕 (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 服务端。限于篇幅,只实现
阅读全文
摘要:对于现实生活中的 C++ 项目,重载 ::operator new() 几乎没有用武之地,因为很难处理好与程序所用的 C++ library 的关系。如果确实需要,我们可以从 malloc 层面入手,彻底而全面地替换内存分配器。
阅读全文
摘要:匿名 namespace (anonymous namespace 或称 unnamed namespace) 是 C++ 的一项非常有用的功能,其主要目的是让该 namespace 中的成员(变量或函数)具有独一无二的全局名称,避免名字碰撞 (name collisions)。一般在编写 .cpp 文件时,如果需要写一些小的 helper 函数,我们常常会放到匿名 namespace 里。muduo 0.1.7 中的 muduo/base/Date.cc 和 muduo/base/Thread.cc 等处就用到了匿名 namespace。我最近在工作中遇到并重新思考了这一问题,发现匿名 na
阅读全文
摘要:这是一套紧凑的 PPT,基本上每一张幻灯片都可以单独写一篇博客,但是我没有那么多时间一一展开论述,只能把结论和主要论据列了出来。
阅读全文
摘要:本文介绍在非阻塞网络编程中定时器的用法与注意事项。
阅读全文
摘要:这是《Muduo 网络编程示例》系列的第二篇文章。 本文讲介绍一个与 Boost.Asio 的示例代码中的聊天服务器功能类似的网络服务程序,包括客户端与服务端的 muduo 实现。这个例子的主要目的是介绍如何处理 TCP 分包,并初步涉及 Muduo 的多线程功能。
阅读全文
摘要:这是《Muduo 网络编程示例》系列的第一篇文章。本文将介绍五个简单 TCP 网络服务协议的 muduo 实现,包括 echo、discard、chargen、daytime、time,以及 time 协议的客户端。以上五个协议使用不同的端口,可以放到同一个进程中实现,且不必使用多线程。
阅读全文
摘要:我将会写一系列文章,介绍用 muduo 网络库完成常见的 TCP 网络编程任务。这些例子都比较简单,逻辑不复杂,代码也很短,适合摘取关键部分放到博客上。其中一些有一定的代表性与针对性,比如“如何传输完整的文件”估计是网络编程的初学者经常遇到的问题。
阅读全文