关闭

boost::asio脱离boost独立编译(windows)

657人阅读 评论(0) 收藏 举报
分类:

boost.asio强大的开源异步网络库,随着c++11的诞生,代码对boost的依赖已经逐步减少,因为boost的依赖库太过庞大, boost的很多优秀的模块都

已经加入到c++11,如智能指针,auto,bind,智能锁,线程等等..

废话不多说了,asio的官网已经说明可以脱离boost独立编译了, 但只是简单的介绍了linux下的脱离编译,下面进入正题:

//1.在工程属性"c++/预处理器/预处理器定义"中加入下面两个宏定义
_WIN32_WINNT 0x0A00 //声明操作系统为WIN10
ASIO_STANDALONE	//独立使用asio

//2.设置工程属性"常规/字符集"设置为使用多字节字符集

//3.将asio源码拷贝到指定目录,并在工程属性包含这个路径



现在我们简单的写个demo测试一下(demo是网上随便找的例子改写一下测试可用性)

#include "stdafx.h"
#include "asio.hpp"
#include <iostream>
using namespace std;
using namespace asio;
using asio::ip::tcp;
#include<functional>

class myasio
{
public:
	myasio()
		:m_acc(m_iosvr, tcp::endpoint(tcp::v4(), 1986))
	{

	}
	~myasio()
	{

	}

public:
	int start()
	{
		std::shared_ptr<tcp::socket> psock(new tcp::socket(m_iosvr));
		m_acc.async_accept(*psock, [&](asio::error_code err) {
			if (err)
			{
				return;
			}
			start();
			std::cout << psock->remote_endpoint().address() << std::endl;
			time_t now = time(0);
			std::string msg = ctime(&now);
			asio::error_code igerr;
			psock->write_some(asio::buffer(msg), igerr);
		});
		m_iosvr.run();
		return 0;
	}
protected:
	void accept_handler(std::shared_ptr<tcp::socket> ps, asio::error_code err)
	{
		if (err)
		{
			return;
		}
		start();

		std::cout << ps->remote_endpoint().address() << std::endl;

		time_t now = time(0);
		std::string msg = ctime(&now);
		asio::error_code igerr;
		ps->write_some(asio::buffer(msg), igerr);
	}
private:
	io_service		m_iosvr;
	tcp::acceptor		m_acc;
};


int main()
{
    myasio asio;
    asio.start();

    return 0;
}

在vs2010和vs2017下都编译通过(以上测试demo是在vs2017下编译)



   
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

boost全平台编译方法

0.通用规则boost自带一套编译工具bjam,bjam本身是跨平台的,并且也要自行编译出来。在boost目录下有bootstrap.sh和bootstrap.bat两个脚本分别用来编译*nix和wi...
  • hursing
  • hursing
  • 2015-06-11 12:00
  • 35010

boost:asio编译

参考:http://hi.baidu.com/need_for_dream/blog/item/c14a28086a504c33e92488b5.html 环境: VS2010,          b...
  • TADICAN
  • TADICAN
  • 2009-06-16 12:51
  • 9965

boost.asio 学习笔记05——asio的windows实现

Operation 还记得前面我们在分析resolver的实现的时候,挖了一个关于operation的坑?为了不让自己陷进去,现在来填吧;接下来我们就来看看asio中的各种operation。  ...
  • henan_lujun
  • henan_lujun
  • 2013-05-23 14:04
  • 6412

boost.asio学习笔记一、linux下boost库的安装

学习开源库第一步就是编译安装好库,然后运行成功一个demo,然后才能进行之后的工作。 下面就来讲讲boost库在linux下的安装。 [mjf@localhost ~]$ tar -zxvf bo...
  • majianfei1023
  • majianfei1023
  • 2015-07-05 06:11
  • 9493

C++ Boost在Windows和Linux下的编译安装

C++作为历史上最成功的语言之一,除了它具有面向对象的性质之外,还有一个非常重要的创新,那就是泛型编程。Boost作为一个泛型库,成为C++很多程序员的首选库,其本身也是由Herb Sutter个人助...
  • wangongxi
  • wangongxi
  • 2015-10-31 03:32
  • 3466

VS2008下编译BOOST 1.39的ASIO库

由于全部编译BOOST库需要的时间太长,而且耗费空间,况且我只需要用ASIO库,所以就没有必要全部编译了。 bjam --show-libraries 可以看见需要编译的库的名称 boost库...
  • bladelyer
  • bladelyer
  • 2012-03-14 17:16
  • 380

boost.asio 学习笔记05——asio的windows实现

Operation 还记得前面我们在分析resolver的实现的时候,挖了一个关于operation的坑?为了不让自己陷进去,现在来填吧;接下来我们就来看看asio中的各种operation。 ...
  • u011676589
  • u011676589
  • 2013-09-23 16:11
  • 877

boost.asio 学习笔记05——asio的windows实现

http://blog.163.com/henan_lujun/blog/static/1953833320134145378226/ boost.asio 学习笔记05——asio的windows...
  • zdy0_2004
  • zdy0_2004
  • 2014-10-23 10:51
  • 586

boost asio 最新版

  • 2017-05-09 17:05
  • 935KB
  • 下载

串口调试助手基于VC2015和Boost ASIO的源代码

  • 2017-11-12 22:16
  • 392KB
  • 下载
    个人资料
    • 访问:955次
    • 积分:59
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档