boost asio 翻译

Posted itdef

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了boost asio 翻译相关的知识,希望对你有一定的参考价值。

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 翻译的主要内容,如果未能解决你的问题,请参考以下文章

boost asio 学习 boost::asio 网络封装

boost asio 网络聊天 代码修改学习

websocketpp 和 boost.asio 有啥区别?

boost::asio::read 函数挂起

boost::asio::system_timer 不会忽略信号

Boost::asio::async_read 不会在条件下停止