"); //-->
本章节使用的资料已经放到了开发板网盘资料中,路径为:“11_Linux 系统开发进阶\78_章节_网络通信-套字节 UDP 使用资料”。
iTOP-IMX6ULL 实现基于 UDP 的 socket 编程。
78.1 实验操作
UDP 是用户数据报协议,它是一种无连接的传输层协议,提供面向事物的简单不可靠信息传送服务,所以在一些网络质量不满意的环境下,UDP 协议数据包丢失会比较严重,会造成数据的丢失。UDP 的特点是它不属于连接型协议,所以资源消耗小。处理速度快的优点,所以通常音频,视频和普通数据在传送时使用 UDP 较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。
UDP 的通信框图如图 78.1.1 所示
从上图可以看到基于 UDP 通信的程序也是由服务器和客户端组成。与 TCP 的服务器不同,UDP 的服务器不需要 listen 和 accept 函数,客户端不需要 connect 函数。下面通过一个例子来了解一下 UDP 的应用程序,首先来看下服务器(server)端的程序。
上面的代码和前面一章的 TCP 的服务器程序差不多,首先也是定义一些变量,然后调用
socket 函数创建一个套接字,这里 socket 函数的第二个参数是 SOCK_DGRAM,即用户数据报,也就是创建的 UDP 连接,然后调用 bzero 函数清空变量 servaddr 的值,然后设置 servaddr 结构的值,接着调用 bind 绑定函数,然后调用 recvfrom 函数直接接收数据,而没有调用 listen 和 accept 函数。
下面来看看客户端(client)的程序 client.c:
客户端(client)的程序首先是定义一些使用的变量,然后也是调用 socket 函数创建一个套接字,socket 函数的第二个参数是 SOCK_DGRAM,即用户数据报,也就是 UDP 连接,然后调用 bzero 函数把servaddr 结构的变量清零,然后设置 servaddr 结构变量的值,然后调用 sendto 发送函数,这里客户端程序没有调用 bind 函数和 connect 函数。现在使用命令。
gcc -o server server.c
执行结果如图 78.1.2:
使用命令 arm-none-linux-gnueabi-gcc -o client client.c 编译 client.c,执行结果如图 78.1.3。
把生成的 client 拷贝到 NFS 共享目录中,如图 78.1.4
然后在虚拟机 Ubuntu 上运行 server 程序,如图 78.1.5。
在 iTOP-IMX6ULL 开发板上运行 client 程序,如图 78.1.6。
现在看下虚拟机 Ubuntu 的 server 程序的输出,如图 78.1.7:
可以看到 server 程序输出“Hello,word”,上面的打印信息就是 client 发送的数据。至此基于 UDP的 socket 通讯就实现了。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
单片机开发板
(已送出,结贴)送一块51开发板,你出邮费
当6 TOPS不再是极限:米尔RK3576 + Hailo-8,让高帧率摄像头真正“实时”
莱迪思联手英伟达推出 Sensor Bridge 方案 加速边缘 AI 产品落地
米尔-瑞萨RZ/G2L核心板开发板的系统启动时间优化应用笔记
GWEVB_XC蓝牙设备开发板
6TOPS算力驱动30亿参数LLM,米尔RK3576部署端侧多模态多轮对话
建议王总组织个开发板的捐赠活动
国产FPGA SoC芯选择,米尔安路飞龙核心板重磅发布
NEC MCU 78F0513D开发板使用教程
米尔出席openEuler Summit 2024,携全志T536和RK3562核心模组亮相
Jobs芯科EFR32xG24 Dev Kit开发板开箱视频
3G高分辨率平板开发板设计方案
AN2131开发板原理图.rar
SL811HS开发板原理图.rar
Kinetis K60系列MCU开发板CFUMEVK-KIT
利用PIC24F Curiosity开发板简化设计
出一个全新正点原子STM32战舰开发板,全新板二手价
12路1080P高清视频流,米尔RK3576开发板重塑视频处理极限
ARM嵌入式系统开发板三星S3C44B0X的完整Protel电路图.rar
拆解:树莓派5 8 GB AI 套件
米尔出席2025安路科技FPGA技术沙龙
慕尼黑电子展上展出的开发板(还有3D 打印机等~)
在米尔FPGA上实现Tiny YOLO V4,助力AIoT应用
CFUMEVK-KIT开发板设计方案
CY7C68013开发板原理图.rar
AM3359支持WINCE7.0
51单片机开发板
Badge USB OCD 与 78F0513D 使用演示视频
Microchip PIC24FJ256DA210开发板在图形显示上的应用