Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Boost笔记--Asio--(1)简单的同步通信小示例

看了一天的Boost.Asio库的资料,现在还是有点迷糊。对于Asio的学习还是要继续,同时在这里也记录下自己入手的第一个小例子。感觉先从小例子入手,然后再去理解那些原理概念啥的,要好一些。因为概念原理都太抽象了,有了小例子就知道是怎么个套路了。对于Asio库的在后面的学习中会陆续的写些文章来记录一些笔记。(注:我不是专业的网络人士,有些东西可能我自己理解的很幼稚,没办法我连tcp/ip协议了解的很少。只能边学边去了解了。)(1)服务器端代码#include <iostream>
#include <boost/asio.hpp>int main(int argc,char * argv[]){
    boost::asio::io_service service;
    boost::asio::ip::tcp::acceptor acceptor(service,boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(),5000));
   
    bool is_stop=false;
    while(!is_stop){
     boost::asio::ip::tcp::socket sock(service);
     acceptor.accept(sock);
     std::cout<<sock.remote_endpoint().address()<<std::endl;
     boost::system::error_code errcode;
     sock.write_some(boost::asio::buffer("hello world"),errcode);
     if(errcode){
         std::cout<<boost::system::system_error(errcode).what()<<std::endl;
         break;
     }
    }
    return 0;
}(2)客户端的代码#include <iostream>
#include <boost/asio.hpp>int main(int argc,char * argv[]){
    boost::asio::io_service service;
    boost::asio::ip::tcp::acceptor acceptor(service,boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(),5000));
   
    bool is_stop=false;
    while(!is_stop){
     boost::asio::ip::tcp::socket sock(service);
     acceptor.accept(sock);
     std::cout<<sock.remote_endpoint().address()<<std::endl;
     boost::system::error_code errcode;
     sock.write_some(boost::asio::buffer("hello world"),errcode);
     if(errcode){
         std::cout<<boost::system::system_error(errcode).what()<<std::endl;
         break;
     }
    }
    return 0;
}编译及运行结果:Ubuntu下编译安装boost库 http://www.linuxidc.com/Linux/2013-07/87573.htmUbuntu下编译boost 1.52b http://www.linuxidc.com/Linux/2013-02/79004.htmVS2008下直接安装使用Boost库1.46.1版本 http://www.linuxidc.com/Linux/2014-08/105253.htmUbuntu编译安装boost并在eclipse C/C++中使用 http://www.linuxidc.com/Linux/2011-04/34790.htmBoost 的详细介绍:请点这里
Boost 的下载地址:请点这里本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-01/127177.htm