boost::asio使用UDP协议通信源码实现
说明:以下源码来自参考文献[1], 比原文更丰富, 更有指导意义, 方便日后参考.
udp servr端源码
//g++ -g udp_server.cpp -o udp_server -lboost_system
//#include <iostream>
#include <boost/asio.hpp>
#include <boost/system/error_code.hpp>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 <iostream>
#include <boost/asio.hpp>
#include <boost/system/error_code.hpp>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<char> 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++"准"标准库
boost::asio使用UDP协议通信源码实现相关推荐
- 多摩川绝对值编码器CPLD FPGA通信源码(VHDL格式+协议+说明书)
多摩川绝对值编码器CPLD FPGA通信源码(VHDL格式+协议+说明书) 用于伺服行业开发者开发编码器接口,对于使用FPGA开发电流环的人员具有参考价值. 适用于TS5700N8501,TS5700 ...
- 全网疯传!Java利用TCP协议实现客户端与服务器通信【附通信源码
目录 TCP协议概念 ServerSocket类 服务器端程序 客户端程序 Hello!大家好哇!我是灰小猿! 上一篇博客和大家分享了在网络编程中要注意的基础知识,关于IP.TCP.UDP以及端口和套 ...
- java socket5源码_Java利用TCP协议实现客户端与服务器通信【附通信源码】
进行TCP协议网络程序的编写,关键在于ServerSocket套接字的熟练使用,TCP通信中所有的信息传输都是依托ServerSocket类的输入输出流进行的. TCP协议概念 先来了解一下TCP协议 ...
- vector can通信源码_CAN总线IMU在自动驾驶安全控制中的应用
CAN(Controller Area Network)作为一种成熟可靠的车载设备通信标准,在过去30多年中几乎应用于所有的客车和重型车辆,通过低成本的物理层和稳定可靠的传输层可实现总线上的消息传输. ...
- linux发送rarp协议,通过源码理解Rarp协议
导读 rarp是通过mac地址查询ip的协议,主要用于有mac的主机,但是没有ip的情况. rarp协议的格式和arp协议是一样的,他们都是通过一种地址查询另外一种地址.操作系统内维护了一个转换表.定 ...
- python3 tcp 通信源码
tcp套接字 *************************************** from socket import * s=socket() s.setsockopt(SOL_SOCK ...
- vector can通信源码_汽车电子CAN网络dbc文件
CAN网络作为汽车网络已经被广泛使用,随着电子零部件被越来越多的应用到汽车中,零部件之间的通信越来越多,德国vector公司作为行业内的标杆企业,vector公司定义了一套文件规范-----dbc,作 ...
- spark学习-33-Spark的RPC通信源码分析
1.概述 private[spark] trait ThreadSafeRpcEndpoint extends RpcEndpoint 凡是继承RpcEndpoint,都是一个消息通讯体,能接收消息. ...
- Java-TCP通信(实现多发多收、群聊功能),BS通信源码
个人简介 大家好,我是韩慧腾.一名正在努力学JAVA的大一小白,本文章为初学的笔记,希望各位多多指教.
最新文章
- matlab一元线性回归分析_建模开讲:一元线性回归分析及SPSS软件实现
- Linux的文件权限
- 基于MongoDb的S3实现
- 企业运维之域控篇(九)--辅助域强制占用后的操作--清除数据
- java数组删除数据_Java 数组 之 一维数组 删除 元素
- matplotlib画图设置线条透明度
- 实操来了!一文告诉你如何用 Streamlit 和 Heroku 开发 Web
- inventor如何钣金出弧面_Inventor教程之钣金多规则
- mysql8区别_mysql8之与标准sql的区别
- matlab的conv2、imfilter、filter2
- 教你查看sql server 2000 sp4补丁是否安装成功 (安装补丁后可以远程访问)
- java 银联,支付宝接口
- Macbook开启HIDPI(2K显示器)
- 利用QQ游戏破解QQ密码
- 谈谈写博客的意义和感受
- matlab方波函数,matlab方波
- Processing 入门基础【秒懂小白篇】
- 人脸识别对动画无效,迪士尼打造动画专用人脸识别库
- Windows下软件提示“没有注册类”问题解决
- 跨时钟域问题(二)(单bit信号跨时钟域 1. 电平同步器 2. 边沿同步器 3. 脉冲检测器)
热门文章
- mysql数据没有真正提交,转MySQL 批量提交优化
- 【Opencv】直方图函数 calchist()
- python基础-第九篇-9.3线程池
- NET基础(3):is 和 as 操作符
- 淘淘经受了一次考验...
- ORB_SLAM2概述
- usaco Combination Lock
- inno setup插件可选安装代码_代码检测工具(sonar docker方式安装)
- oracle cdc 提交顺序,Oracle CDC部署流程
- php数字截取2位小树,数据结构-PHP 二分搜索树的层序遍历(队列实现)