看了一天的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; }
编译及运行结果:
时间: 2024-10-03 13:38:40