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

相關文章
相關標籤/搜索