Boost笔记--Asio--(1)简单的同步通讯小示例

  看了一天的Boost.Asio库的资料,如今仍是有点迷糊。对于Asio的学习仍是要继续,同时在这里也记录下本身入手的第一个小例子。感受先从小例子入手,而后再去理解那些原理概念啥的,要好一些。由于概念原理都太抽象了,有了小例子就知道是怎么个套路了。对于Asio库的在后面的学习中会陆续的写些文章来记录一些笔记。ios

(注:我不是专业的网络人士,有些东西可能我本身理解的很幼稚,没办法我连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)客户端的代码socket

#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;
}

编译及运行结果:tcp

相关文章
相关标签/搜索