UDP组播

article/2025/9/22 16:14:11

UDP组播

UDP(UserDatagram Protocol)
中文名用户数据报协议,是OSI参考模型中一种无连接的传输层协议,是一种高效但不可靠传输。UDP在IP报文中的协议号是17。

UDP传递方式
UDP有三种传输方式:单播、广播、多播。
1.单播Unicast:客户端与服务器之间点对点连接。
2.广播BroadCast:主机一对所有的通讯模式,广播者可以向网络中所有主机发送信息。广播禁止在Internet宽带网上传输。
3.多播MultiCast:即组播。主机一对一组的通讯模式,只有加入了同一个组的主机才可以收到此组内的所有数据。

组播地址
1.地址范围:D类IP地址。范围:224.0.0.0~239.255.255.255
2.组播组:永久/临时。永久组播组一般由官方分配。
3.224.0.0.0~224.0.0.255为预留的组播地址,即永久组地址。地址224.0.0.0保留不做分配,其它地址供路由协议使用。
4.224.0.1.0~224.0.1.255是公用组播地址,可以用于Internet。
5.224.0.2.0~238.255.255.255为用户可用的组播地址(临时组地址),全网范围内有效。
6.239.0.0.0~239.255.255.255为本地管理组播地址,仅在特定的本地范围内有效。

# 组播的原理
用户申请组播组,且组播组被维护在路由器中,通过路由器向改组播组内的用户进行消息的转发。广域网通信,一般网络设备默认阻止组播协议通过。

组播的基本步骤
1.建立socket
2.socket和端口绑定
3.加入组播组(关键步骤)
4.通过sendto/recvfrom进行数据收发
5.关闭socket

UDP应用
包总量较少的通信
视频、音频多媒体通信(即时通信)
广播通信

组播流程图
在这里插入图片描述

主要函数
setsockopt设置套接字选项可以设置多播的一些相关信息
IP_MULTICAST_TTL //设置多播的跳数值
IP_ADD_MEMBERSHIP //将主机的指定接口加入多播组,以后就从这个指定的接口发送与接收数据
IP_DROP_MEMBERSHIP //主机退出多播组
IP_MULTICAST_IF //获取默认的接口或设置多播接口
IP_MULTICAST_LOOP //设置或禁止多播数据回送,即多播的数据是否回送到本地回环接口 例子:
int ttl = 255;
setsockopt(socket, IPPROTO_IP, IP_MULTICAST_TTL, &ttl,sizeof(ttl));
//设置跳数 socket -套接字描述符 PROTO_IP -选项所在的协议层 IP_MULTICAST_TTL -选项名 &ttl -设置的内存缓冲区 sizeof(ttl) -设置的内存缓冲区长度

C++代码实现
1.关键代码加入组播组:

    struct ip_mreq mreq;    //组播结构体/* use setsockopt() to request that the kernel join a multicast group */    mreq.imr_multiaddr.s_addr=inet_addr(GROUP_IP);     //组播组的ip地址  mreq.imr_interface.s_addr=htonl(INADDR_ANY);       //加入的客户端主机的ip地址  INADDR_ANY为0.0.0.0,泛指本机,表示本机所有的ip.//客户端只有在加入多播组后才能接受多播组的数据if (setsockopt(fd,IPPROTO_IP,IP_ADD_MEMBERSHIP,(char *)&mreq,sizeof(mreq)) < 0)   {    return GetLastError();}    

2.Demo后期再补


http://chatgpt.dhexx.cn/article/20ptGH27.shtml

相关文章

UDP通信

目录 1.什么是UDP通信 1.扔韭菜例子&#xff1a; 2.总结&#xff1a; 2.UDP通信&#xff1a;多发多收 UDP的三种通信方式&#xff1a; 3.UDP如何实现广播 4.UDP如何实现组播 1.什么是UDP通信 UDP是一种无连接、不可靠传输的协议。 将数据源IP、目的地IP和端口以及数据封…

UDP

概述 用户数据保协议&#xff08;User Datagram Protocol&#xff0c;UDP&#xff09;是开放系统互联模型&#xff08;Open System Interconnection&#xff0c;OSI&#xff09;中传输层协议的一种&#xff0c;是一种保留消息边界的简单的面向数据报的协议。UDP不提供差错纠正、…

TCP和UDP详解(非常详细)

文章目录 UDPUDP协议报文格式&#xff1a;UDP协议的特点:UDP的缓冲区&#xff1a;UDP存在接收缓冲区&#xff0c;但不存在发送缓冲区。 TCPTCP协议报文格式&#xff1a;确认应答机制&#xff1a;超时重传:超时重发的时间应该如何确定&#xff1f; 连接管理机制TIME_WAIT状态为什…

VS2008安装错误,解决方案

重新整了一下电脑&#xff0c;再次安装VS2008&#xff0c;以前安装很顺利&#xff0c;没想到这次安装却是失败了&#xff0c;各种错误&#xff0c;一路安装失败&#xff0c;再谷歌安装&#xff0c;最后终于安装成功&#xff0c;记下来&#xff0c;呵呵&#xff01; 刚开始安装…

VS 2008的64位编译环境的安装和使用

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴! 作者:朱金灿 来源:http://blog.csdn.net/clever101 1. 安装64位编译环境 最近准备…

win7+VS2008安装boost

找了好久boost的安装教程&#xff0c;杂七杂八的方法有很多&#xff0c;说直接下载boost安装包installer&#xff0c;但是boostpro.com貌似挂了...所以最后还是得自己上阵&#xff0c;重新编译&#xff0c;方法综合了几个&#xff0c;最后终于搞定了&#xff08;某些细节部分也…

VS2008安装Mercurial插件

&#xff08;1&#xff09;安装Mercurial或TortoiseHg. 从官网下载Mercurial或包含GUI的TortoiseHg。 &#xff08;2&#xff09;安装VS插件HgSccPackage。 下载VS插件HgSccPackage并安装&#xff0c;该插件支持VS2008和VS2010. &#xff08;3&#xff09;在VS中将版本控制…

在Win10 系统中安装VS 2008

安装原因:由于要对一个之前用win ce的项目进行开发维护&#xff0c;而win ce最多只能兼容VS2008的版本。因此现要在Win10上安装vs2008 1.由于win10系统没有自带.net Framework 3.5框架&#xff0c;需要我们下载一个.net Framework3.5框架的离线安装包。同时下载好VS2008的镜像。…

WIN SERVER 2008安装VS2015踩坑小结

系统&#xff1a;WIN SERVER 2008 Enterprise R2&#xff0c;未连接外网 软件&#xff1a;VS2015企业版 第一遍普通安装过程就不多赘述了&#xff0c;选择的典型安装 1、安装完成后&#xff0c;打开解决方案&#xff0c;所有项目显示加载失败&#xff0c;提示“项目无法加载&a…

安装VS2008(转)

原文链接 http://dev.yesky.com/msdn/329/7823829.shtml1、先用虚拟光驱将我们下载下来的文件打开&#xff1a; 打开后的会自动弹出一个安装对话框&#xff0c;如果没有的话到我的电脑里找到那个虚拟光驱将它打开就是了。安装对话框的效果如下图&#xff1a; 单击对话框中的Ins…

安装VS2008 SP1

最近由于在学习SQL2008&#xff0c;所以需要使用VS2008太耍一下关于SQL2008的新特性&#xff0c;尤其是Entity Framework。VS2008和SQL2008我都更新成英文版了。接下来安装VS2008的Sp1补丁&#xff0c;MS又使用了很恶心的网络安装&#xff0c;下载的Sp1才450K&#xff0c;然后网…

vs2008安装包及安装教程

注&#xff1a;本博客为原创博客&#xff0c;允许转载&#xff0c;转载时请注明出处 1.下载vs2008安装包&#xff0c;找不到资源的请戳这里&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1dGIaPrj 密码&#xff1a;25dq 2.打开安装包&#xff0c;点击autorun进行安装 3…

VS2008安装部署应用程序安装包制作过程

制作过程 1.打开vs&#xff0c;新建项目->其他项目类型->安装和部署->安装项目 2、这里就会出现三个文件夹&#xff0c;不用多说一看就明白意思&#xff0c;点“应用程序文件夹–>添加–>文件夹 3、在“应用侧滑盖内需文件夹”文件夹上右键–>添加–>…

vs2008安装过程

解压SQLFULL_CHS.iso后,安装sql 2008: 重新运行安装程序后,有一个dos窗口,最后结果是成功。显示SQL Server 安装中心。 默认是在计划页面的,我点击了“系统配置检查器”,结果:操作完成,已通过13,失败0,警告0,已跳过1。 点击安装,进入安装页面。使用“全新SQL Serve…

VS2008安装Qt4.8

用MFC觉得就像是在刀尖上跳舞。听说Qt不错&#xff0c;忍不住想学一番&#xff0c;谁知安装就遇到许多困难。施展百度大法&#xff0c;耗尽心力终于练成。说实话&#xff0c;每次配置开发环境就像打仗一样&#xff0c;尤其像Qt这样的。 虽然Qt已经升级到5.3&#xff0c;但是由…

VS2008+Qt4.8安装笔记

一.建议安装顺序 可能需要先安装.NET3.5 1.vs2008(vs2008安装需勾选Team Developer&#xff0c;可避免安装后闪退&#xff0c;默认不勾选x64编译器)。 2.qt-opensource-windows-x86-vs2008-4.8.6(避免cmake找不到Qt4)。 3.Addin。 4.番茄。 二.安装成功记录 A(win10)&#x…

Visual Studio 2008系列教程(一):VS 2008安装详解!

前天得知Visual Studio 2008的正式版发布了&#xff01;所以到www.Microsoft.com去看了一下&#xff0c;确定VS2008是真的发布了。不知道他会给我们带来什么惊喜呢&#xff1f;我们大家一起来体验一下吧&#xff01; 想要用VS 2008的话&#xff0c;肯定就先要将它下载下来然后安…

VS2008(Visual Studio 2008)下载安装步骤

最近公司一个旧的项目&#xff0c;要进行优化&#xff0c;需要用到Visual Studio 2008编辑器&#xff0c;这里总结一下Visual Studio 2008编辑器的下载和安装步骤。 1、首先去微软的官网&#xff0c;下载vs2008,官网地址&#xff0c;官网下载可能比较慢&#xff0c;可以移步至…

关于证书(certificate)和公钥基础设施(PKI)的一切

这篇长文并不是枯燥、零碎地介绍 PKI、X.509、OID 等概念&#xff0c;而是从前因后果、历史沿革 的角度把这些东西串联起来&#xff0c;逻辑非常清晰&#xff0c;让读者知其然&#xff0c;更知其所以然。 证书和 PKI 的目标其实很简单&#xff1a;将名字关联到公钥&#xff08…

关于PKI 你了解多少

公钥基础设施PKI&#xff08;Public Key Infrastructure&#xff09;&#xff0c;是利用公开密钥机制建立起来的基础设施&#xff0c;在信息互联互通时代&#xff0c;可以说它是创建、颁发、管理、注销公钥证书所涉及的所有软件、硬件集合体。 对拥有庞大用户的系统来说&#x…