boost之asio库,socket相关

来源:互联网 发布:为什么贫穷 出路 知乎 编辑:程序博客网 时间:2024/05/17 02:41

server端代码:

#include <iostream>#include <boost/thread.hpp>#include <boost/asio.hpp>using namespace std;using namespace boost;void main(){boost::asio::io_service io_service;boost::asio::ip::udp::socket sock_srv(io_service);boost::asio::ip::udp::endpoint point_srv(boost::asio::ip::address::from_string("127.0.0.1"), 6000);sock_srv.open(point_srv.protocol());sock_srv.bind(point_srv);while(1){char buf[100] = {0};boost::asio::ip::udp::endpoint point_conn;sock_srv.receive_from(boost::asio::buffer(buf, 100), point_conn);cout<<"server recv: "<<buf<<endl;sock_srv.send_to(boost::asio::buffer(buf), point_conn);}}


可改为:

#include <iostream>using namespace std;#include <boost/asio.hpp>int main(int argc, char*argv[]){boost::asio::io_service io_service;// boost::asio::ip::udp::socket sock_srv(io_service);// // boost::asio::ip::udp::endpoint point_srv(boost::asio::ip::address::from_string("127.0.0.1"), 6000);// // sock_srv.open(point_srv.protocol());// sock_srv.bind(point_srv);boost::asio::ip::udp::socket sock_srv(io_service, boost::asio::ip::udp::endpoint(boost::asio::ip::address::from_string("127.0.0.1"), 6000));//recvchar buf[100] = {0};boost::asio::ip::udp::endpoint point_conn;sock_srv.receive_from(boost::asio::buffer(buf, 100), point_conn);cout<<"server recv:"<<buf<<endl;//sendsock_srv.send_to(boost::asio::buffer(buf), point_conn);return 0;}


client端代码:

#include <iostream>#include <boost/thread.hpp>#include <boost/asio.hpp>using namespace std;using namespace boost;void main(){boost::asio::io_service io_service;boost::asio::ip::udp::socket sock_cli(io_service);boost::asio::ip::udp::endpoint point_srv(boost::asio::ip::address::from_string("127.0.0.1"), 6000);sock_cli.open(point_srv.protocol());while(1){sock_cli.send_to(boost::asio::buffer("hello world"), point_srv);char buf[100] = {0};sock_cli.receive_from(boost::asio::buffer(buf, 100), point_srv);cout<<"client recv: "<<buf<<endl;}}


新代码:

#include <iostream>using namespace std;#include <boost/asio.hpp>int main(int argc, char*argv[]){boost::asio::io_service io_service;boost::asio::ip::udp::socket sock_cli(io_service);    sock_cli.open(boost::asio::ip::udp::v4());//sendboost::asio::ip::udp::resolver rlv(io_service);boost::asio::ip::udp::resolver::query qry(boost::asio::ip::udp::v4(), "127.0.0.1", "6000");boost::asio::ip::udp::endpoint point_srv = *rlv.resolve(qry);sock_cli.send_to(boost::asio::buffer("hello world"), point_srv);//recvchar buf[100] = {0};boost::asio::ip::udp::endpoint point_conn;sock_cli.receive_from(boost::asio::buffer(buf, 100), point_conn);cout<<"client recv:"<<buf<<endl;return 0;}




原创粉丝点击