Boost.Aiso教程 1

教程

基本技能
第一节中的教程程序介绍使用aiso工具包所需的基本概念。在陷入复杂的网络编程世界之前,这些教程程序说明使用简单的异步定时器的基本技能。

Timer.1-同步使用计时器


此教程程序显示如何执行阻塞等待计时器上,介绍了aiso。

#include <iostream>
#include <boost/asio.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>

int main()
{
  boost::asio::io_service io;

  boost::asio::deadline_timer t(io, boost::posix_time::seconds(5));
  t.wait();

  std::cout << "Hello, world!" << std::endl;

  return 0;
}

我们开始通过包括必要的头文件。

所有的aiso类可以利用简单地包括"asio.hpp"头文件。
#include <iostream>

#include <boost/asio.hpp>


因为这个例子使用计时器,我们需要包括适当的 Boost.Date_Time 头文件的操作时间。

#include <boost/date_time/posix_time/posix_time.hpp>


所有使用aiso程序需要有至少一个io_service对象。此类提供对 I/O 功能的访问。我们声明此类型对象的第一件事中的主要功能。
int main()
{

  boost::asio::io_service io;


下一步我们声明对象的类型 boost::asio::deadline_timer。提供的 I/O 功能的核心aiso类 (或在此案例计时器功能) 始终以 io_service 作为其第一个构造函数参数的引用。第二个参数的构造函数设置计时器到期从现在开始的 5 秒。

  boost::asio::deadline_timer t(io, boost::posix_time::seconds(5));


在这个简单的例子我们执行阻塞等待计时器。那就是,对deadline_timer::wait()的调用不会返回直到计时器已过期,5 秒钟后它被创建 (即不是从等待启动时)。
截止日期计时器总是处于两种状态之一:"过期"不过期"。如果调用deadline_timer::wait()函数时上过期的计时器,它将立即返回。

  t.wait();


最后我们打印强制性的"Hello, world!"消息显示当计时器已过期。
  std::cout << "Hello, world!" << std::endl;

  return 0;
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

道格拉斯范朋克

播种花生牛奶自留田

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值