2015年5月24日
摘要: 在软件开发过程中,调试器可以说是一个得力助手,善用它你就可以快速定位bug并消灭之。想想以前不会使用调试器功能的时候只靠输出数据来差错的方式,真是效率太低了。如果你对调试器的运行原理好奇,学习开源软件是最好的途径。当然必备的入门书籍还是有必要的,如张银奎先生的《软件调试》一书就是本经典书籍。言归正传... 阅读全文
posted @ 2015-05-24 20:16 sudosky 阅读(1591) 评论(0) 推荐(0) 编辑
摘要: 单例模式应该说是最简单的设计模式了。在此分享一个线程安全的单例模板类。template class CSingleton{public:static Type* GetInstance(){// kBeingCreatedMarker用来表示单例实例正在创建过程中。// 此处初始化为1是因为操作系统... 阅读全文
posted @ 2015-05-24 12:26 sudosky 阅读(412) 评论(0) 推荐(0) 编辑
  2015年5月23日
摘要: 5. 多io_service前面那篇讲到了多线程的用法。这篇讲一下多io_service的用法,大家可参考下官方提供的HTTP Server 2(an io_service-per-CPU)这个例子。官方提供的例子中,使用方法很简单,建立一个io_service_pool,然后对每一个io_serv... 阅读全文
posted @ 2015-05-23 17:18 sudosky 阅读(756) 评论(0) 推荐(0) 编辑
摘要: 4. 多线程一般情况下,服务端开启一条线程做io_service::run()工作就足够了。但是,有些情况下可能会变得很糟糕。从之前的分析,我们知道异步操作的一个关键步骤就是io_service回调我们注册的handler。现在假设客户端与服务端建立了四个socket连接,相应的I/O对象分别为so... 阅读全文
posted @ 2015-05-23 12:38 sudosky 阅读(4157) 评论(0) 推荐(0) 编辑
  2015年5月16日
摘要: 3. Daytime实例分析下面以官方提供的Daytime例子分析下如何使用asio操作socket。3.1 客户端客户端代码使用同步函数。#include #include #include using boost::asio::ip::tcp;int main(int argc, char* a... 阅读全文
posted @ 2015-05-16 21:23 sudosky 阅读(528) 评论(0) 推荐(0) 编辑
摘要: 2. timer实例分析下面分别介绍下同步操作实例与异步操作实例2.1 同步操作实例下面简单解释下官方文档中的定时器同步等待例子#include #include #include int main(){ boost::asio::io_service io; // 定义一个io_service对... 阅读全文
posted @ 2015-05-16 20:15 sudosky 阅读(551) 评论(3) 推荐(0) 编辑
  2015年5月15日
摘要: Boost.Asio是一个主要用于网络及底层I/O编程的跨平台C++库。1. 初窥Boost.Asio支持对I/O对象进行同步及异步操作。1.1 同步操作同步操作的事件顺序如下图所示:1) 调用者调用I/O对象的connect函数开始连接操作,socket.connect(server_endpoi... 阅读全文
posted @ 2015-05-15 22:34 sudosky 阅读(384) 评论(0) 推荐(0) 编辑
  2015年4月25日
该文被密码保护。 阅读全文
posted @ 2015-04-25 22:00 sudosky 阅读(975) 评论(0) 推荐(3) 编辑