![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习笔记
lujun-cc
这个作者很懒,什么都没留下…
展开
-
boost.asio 学习笔记05——asio的windows实现
Operation还记得前面我们在分析resolver的实现的时候,挖了一个关于operation的坑?为了不让自己陷进去,现在来填吧;接下来我们就来看看asio中的各种operation。 和前面提到过的service的类似,这里的operation也分为两大系:IOCP Enable和Disable系列。这里我们重点关注下图中红色部分表示的IOCP Enable系列oper原创 2013-05-23 14:04:08 · 9880 阅读 · 0 评论 -
boost.asio学习笔记03——io objects
asio的文档,告诉我们在声明一个io_service对象之后,就可以创建io对象去干活了,例如:int main(int argc, char* argv[]){ boost::asio::io_service io_service; tcp::resolver resolver(io_service); tcp::resolver::que原创 2013-05-23 14:04:03 · 3400 阅读 · 0 评论 -
boost.asio 学习笔记02——io_service类
从第一个boost.asio的教程开始,boost文档就一直在告诉我们:使用boost.asio第一步就是要创建一个io_service对象。那么io_service是个什么东西呢? boost.asio文档说,io_service为下面的这些异步IO对象提供最核心的IO功能:boost::asio::ip::tcp::socketboost::asio::ip::tcp::acc原创 2013-05-23 14:04:00 · 4611 阅读 · 1 评论 -
boost.asio 学习笔记01——概述
boost.asio为异步IO提供了一份标准的C++的跨平台实现,特别针对网络IO提供了良好的支持,使之成为C++网络编程利器。关于如何使用asio,boost文档中已经有了详尽说明,而且附带的例子也很直观,我们不必再造轮子;本文则结合asio的基本应用,侧重于源代码的分析,特别是针对windows平台上的实现进行分析。 纵观asio源码,在统一的接口层之下,asio提供了大量的类来支持不同的原创 2013-05-23 14:03:58 · 2649 阅读 · 0 评论 -
boost.asio 学习笔记07——总结
至此,我们对boost.asio的基本体系结构以及在windows上的实现,做了一个梳理;个人认为常用到的操作及其实现都涉及到了。当然,本文并没有对非Win环境下的实现、SSL,串口、buffer管理、以及如何使用asio等进行讨论。 针对asio,个人也是刚刚接触正在学习,觉得要想使用好他,还是首先要了解socket的基本操作,在windows环境下,还要了解IOCP模型,然后才能用好它原创 2013-05-23 14:04:13 · 1601 阅读 · 1 评论 -
boost.asio 学习笔记04——asio的体系结构
三层类关系图根据前面的分析,我们知道asio有着这样的逻辑:参考STL,提供basic模版,对外使用basic模版的实例提供接口。basic模版将具体操作委托给下层服务类完成。下层服务类再把操作委托给平台相关的服务类。 鉴于此,我们将asio体系划分为三层:io object层,basic_模版类层,服务层。第一层:io object层,作为应用程序直接使用的对象,原创 2013-05-23 14:04:05 · 3393 阅读 · 0 评论 -
boost.asio 学习笔记06——其他
asnyc_read VS. async_read_some VS. async_receiveasync_read是一个全局函数;后面两个则于ip::tcp::socket的成员个函数;都可以用来异步读取操作,他们有什么样的差别呢。先来看async_read_some和async_receive,他们的文档说明如下:async_read_some:Start an asynchr原创 2013-05-23 14:04:10 · 2696 阅读 · 0 评论