Boost Asio库的学习与探究(一)

对于boost库的强大的能力,相信用过boost的人都知道。笔者作用一个小白,今天开始一一探究boost asio库的一些东西,这里着重探究和网络有关的内容。由于之前没有看过asio的源代码,这里不免有疏漏和不足,甚至是错误之处,这里欢迎大家一起来探讨。

boost/asio.hpp. 这里的文件这中好像没有什么特别的东西,只包含了一系列的头文件。我们可以在www.boost.org/libs/asio上看到相关的文档资料。其中有这样一段:
     #if defined(_MSC_VER) && (_MSC_VER >= 1200)
     # pragma once
     #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)

    估计是有编译器相关的。

    asio.hpp的东西没什么可看的,接下来由于我们主要看的是网络相关的东西,那么一下文件自然是tcp.hpp.我们一句一句的来解析这些代码。

   首行,它声明了一个basic_endPoint<tcp>的别名 endpoint.从这个形式我们可以知道basic_endpoint是一个端点类的模板。从名字我作出以下端点的假设,首先,网络之中的通讯都是主机与主机之间的,那么我们是否可以认为一个主机就是一个端点呢?下面,让我们来看一下这个模板类(basic_endpoint.hpp).

文档注释是这样写的 The boost::asio::ip::basic_endpoint class template describes an endpoint that   may be associated with a particular socket.(boost::asio::ip::basic_endpoint 模板描述了一个可能被一个特别的套接字关联的端点).既然是模板类,必然需要一个抽像数据类型,我们来看template <typename InternetProtocol>从名字可以看到,basic_endpoint的模板参数是一个网络协议。

接下来,basic_endpoint又声明了两个别名,一个是typedef InternetProtocol protocol_type;这是它本身的模板参数,我们不用管,下一个typedef boost::asio::detail::socket_addr_type data_type;这是一个网络地址的类型。我们在这里对于这个网络地址,先

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值