Boost在Windows上的配置以及的Boost::asio C/S同步例子

一、 下载boost

boost.org

http://www.boost.org/users/download/

boost_1_51_0.zip 下载并解压到C盘根文件夹

二、编译boost

1、生成生命行程序

  执行bootstrap.bat

2、编译

  执行b2.exe,完成后显示:

The Boost C++ Libraries were successfully built!
The following directory should be added to compiler include paths:
    C:/boost_1_51_0
The following directory should be added to linker library paths:
    C:\boost_1_51_0\stage\lib

三、使用boost

1、创建一个win32 console

2、引用bootst

  C/C++ -> Additional Include Directories: C:\boost_1_51_0
  Linker-> Additional Library Directories: C:\boost_1_51_0\stage\lib


四、Boost::asio 简单的同步C/S例子

1、服务器

#include <iostream>

#include <boost/asio.hpp>

int main(int argc, char* argv[])

{

 using namespace boost::asio;

 // 所有asio类都需要io_service对象

 io_service iosev;

 ip::tcp::acceptor acceptor(iosev,

  ip::tcp::endpoint(ip::tcp::v4(), 1000));

 for(;;)

 {

  // socket对象

  ip::tcp::socket socket(iosev);

  // 等待直到客户端连接进来

  acceptor.accept(socket);

  // 显示连接进来的客户端

  std::cout << socket.remote_endpoint().address() << std::endl;

  // 向客户端发送hello world!

  boost::system::error_code ec;

  socket.write_some(buffer("hello world!"), ec);

  // 如果出错,打印出错信息

  if(ec)

  {

   std::cout <<

    boost::system::system_error(ec).what() << std::endl;

   break;

  }

  // 与当前客户交互完成后循环继续等待下一客户连接

 }

 return 0;

}

2.客户端

#include <iostream>

#include <boost/asio.hpp>

int main(int argc, char* argv[])

{

 using namespace boost::asio;

 // 所有asio类都需要io_service对象

 io_service iosev;

 // socket对象

 ip::tcp::socket socket(iosev);

 // 连接端点,这里使用了本机连接,可以修改IP地址测试远程连接

 ip::tcp::endpoint ep(ip::address_v4::from_string("127.0.0.1"), 1000);

 // 连接服务器

 boost::system::error_code ec;

 socket.connect(ep,ec);

 // 如果出错,打印出错信息

 if(ec)

 {

  std::cout << boost::system::system_error(ec).what() << std::endl;

  return -1;

 }

 // 接收数据

 char buf[100];

 size_t len=socket.read_some(buffer(buf), ec);

 std::cout.write(buf, len);

 getchar();

 return 0;

}

参考:

Windows环境下使用Boost

《Boost_asio权威傻瓜指南》
--------------------- 
原文:https://blog.csdn.net/hezijian22/article/details/41595293 
 

猜你喜欢

转载自blog.csdn.net/Think88666/article/details/89893273