Boost.Aiso教程 1

xiaoxiao2021-02-28  130

教程 基本技能 第一节中的教程程序介绍使用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; }

转载请注明原文地址: https://www.6miu.com/read-74484.html

最新回复(0)