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)