首页 > boost::asio使用UDP协议通信源码实现

boost::asio使用UDP协议通信源码实现

说明:以下源码来自参考文献[1], 比原文更丰富, 更有指导意义, 方便日后参考.

udp servr端源码

//g++ -g udp_server.cpp -o udp_server -lboost_system
//#include 
#include 
#include using namespace std;
using namespace boost::asio;int main(){try{cout << "udp server start ......" << endl;io_service ios;ip::udp::socket sock(ios, ip::udp::endpoint(ip::udp::v4(), 6699));while(true){char buf[1];ip::udp::endpoint ep;boost::system::error_code ec;sock.receive_from(buffer(buf), ep, 0, ec);if(ec && ec!=error::message_size){throw boost::system::system_error(ec);}cout << "send to " << ep.address() << endl;sock.send_to(buffer("hello asio udp"), ep);}}catch(std::exception& e){cout << e.what() << endl;}return 0;
}

udp client端源码

//g++ -g udp_client.cpp -o udp_client -lboost_system
//#include 
#include 
#include using namespace std;
using namespace boost::asio;int main(){try{cout << "udp client start ......" << endl;io_service ios;ip::udp::endpoint send_ep(ip::address::from_string("127.0.0.1"), 6699);ip::udp::socket sock(ios);sock.open(ip::udp::v4());char buf[1];sock.send_to(buffer(buf), send_ep);vector v(100, 0);ip::udp::endpoint recv_ep;sock.receive_from(buffer(v), recv_ep);cout << "recv from " << recv_ep.address() << endl;cout << &v[0] << endl;}catch(exception& e){cerr << e.what() << endl;}return 0;
}

运行截图





参考文献

[1].罗剑锋, Boost程序库完全开发指南---深入C++"准"标准库

更多相关:

  • 一、摘要    总结基于C#的UDP协议的同步通信。   二、实验平台    Visual Studio 2010   三、实验原理    UDP传输协议同TCP传输协议的区别可查阅相关文档,此处不再赘述。   四、实例  4.1 采用socket实现UDP   由于UDP是一种无连接的协议。因此,为了使服务器应用能够发送和接收UDP...

  • IPSec的NAT穿越本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: [email protected]来源:http://yfydz.cublog.cn参考资料:RFC3715,3947,39481. 前言IPSec提供了端到端的IP通...

  • 下面的源码给出了使用boost::asio进行域名解析的方法. //g++ -g resolver_demo.cpp -o resolver_demo -lboost_system -lpthread //#include #include #include

  • pc 端配置 点击pc端无线链接图标编辑链接以太网编辑IPv4设置方法:与其他计算机共享根据putty获取的动态ip使用ssh登录 解决 ip 无法登录问题 设置 pc 端 ip 和开发板 ip 在同一个网段 比如开发板 ip 是 10.42.0.123 可以设置自己机器的 ip 为 10.42.0.11 sudo ifcon...

  • 原文:TCP/IP 简介     第一节:TCP/IP 简介 第二节:TCP/IP 寻址 第三节:TCP/IP 协议 第四节:TCP/IP 邮件     TCP/IP 是用于因特网 (Internet) 的通信协议。     计算机通信协议 计算机通信协议是对那些计算机必须遵守以便彼此通信的规则的描述。     什么是 TC...

  • #保存一万条命令记录 sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile#在/etc/profile的文件尾部添加如下行数配置信息 ######jiagu history xianshi######### USER_IP=`who -u am i 2>/dev/null |...

  • TCP/IP基础概念及通信过程举例   出现 上个世纪60年代,由于中央集中式网络的容灾性较弱,以美国国防部为中心的一家组织研究出分组交换网络。后来为了验证分组交换技术的实用性,ARPANET出现了,并且在3年内逐渐发展,由4个节点发展至34个节点。20世纪70年代前半叶,ARPANET一个机构研制出了TCP/IP,1982年具体规范...

  • 异步模式的服务器源码 //g++ -g async_tcp_server.cpp -o async_tcp_server -lboost_system //#include #include #include #include

  • 近来狂热地研究boost的开发技术,现将读书笔记整理如下: 需要说明的是, 本博该专题下面关于boost的源码是采用boost1.55版本, 运行在Ubuntu 14.04 64bit下面, 使用apt包安装(非源码编译安装), 后续不再做说明. 同步socket类型的服务器源码实现: //g++ -g sync_tcp_s...