码迷,mamicode.com
首页 > 其他好文 > 详细

boost asio 翻译(一)

时间:2016-03-13 19:40:42      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:

http://www.gamedev.net/blog/950/entry-2249317-a-guide-to-getting-started-with-boostasio/

编译环境 boost1.59  vs2015

 

A guide to getting started with boost::asio
boost asio 学习指南

boost::asio是一个使用现代C++方法为开发者提供异步模型的跨平台的c++网络和
底层IO库.目前已经拥有大量用户并成为boost库的一部分


在开始之前,我们将浏览下boost::asio综述。它包括了很多我们必须知道的基本
信息。指南不会涉及整个boost库的复杂细节,他将指导我们学习如何在我们的程
序中使用ASIO。

本指南不会教授任何编程语言。读者必须熟悉C++并且熟练使用boost库,尤其是ASIO库。指南也不会教授网络编程。换句话说,本指南的目标是指导读者使用asio,但是依旧需要读者花费时间读取官方文档。

本指南示例是在windows下编译。如果代码需要移植,可能需要做一些逻辑上的改变。所有代码已经压缩并上传,没有包含工程文件,仅包含源码文件。代码依赖BOOST库。

1 io_service的基础
boost::asio的核心对象就是io_service.此对象类似于库的大脑和心脏。我们使用一个简单的示例来熟悉它,调用run成员函数。如果查看函数的文档说明,run函数将阻塞直到所有任务完成并且没有任何处理器被分发,或者直到io_service被停止。

代码示例1a

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

int main( int argc, char * argv[] )
{
	boost::asio::io_service io_service;

	io_service.run();

	std::cout << "Do you reckon this line displays?" << std::endl;

	return 0;
}

  

基于文档描述,我们期望文本会被打印。当我们运行程序时,我们得到了预期的效果,我们看见了这行文本。

我们将创建一个任务类,任务类在有任务运行时通知io_service。换句话说,当io_service有一个任务对象与其关联,它将不会停止运行。下个示例验证这个说法。

代码示例1b

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

int main( int argc, char * argv[] )
{
	boost::asio::io_service io_service;
	boost::asio::io_service::work work( io_service );

	io_service.run();

	std::cout << "Do you reckon this line displays?" << std::endl;

	return 0;
}

  

boost asio 翻译(一)

标签:

原文地址:http://www.cnblogs.com/itdef/p/5271302.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!