多播的概念

article/2025/9/10 3:51:28

一、多播概述

多播:数据的收发仅仅在同一组中进行
(相当于我往一个群里发,只有加入这个群的人才能收到)
多播的特点
①多播地址标示一组接口。
②多播可以用于广域网使用。
③在IPv4,多播是可选的。
在这里插入图片描述

二、多播地址

IPv4的D类地址是多播地址
十进制:
244.0.0.1—239.255.255.254范围内任意一个IP地址都代表多播组。
十六进制:
E0.00.00.01—EF.FF.FF.FE

多播地址向以太网MAC地址的映射
在这里插入图片描述
多播的MAC地址:高24位固定,低23位将多播IP地址的低23位映射过来。
eg: IP为224.0.0.1,即多播地址为01:00:5e:00:01:01

三、多播工作流程

在这里插入图片描述
总结:
①主机先加入多播组
②往多播组发送数据
在这里插入图片描述

四、多播的API

在IPv4因特网域(AF_INET)中,多播地址结构体用如下结构体ip_mreq表示
在这里插入图片描述

多播套接口选项

int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);

在这里插入图片描述
只能将自己加入某个多播组中

eg:

//将主机加入多播组224.0.0.2,网卡默认都加入224.0.0.1#include <stdio.h>
#include <string.h>
#include <sys/socket.h>
#include <netint/in.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <arpa/inet.h>
#include <fcntl.h>int main()
{//1.UDP支持多播int sockfd = socket(AF,INET,SOCK_DGRAM,0);   //UDP套接字//2.让sockfd有一个固定的IP端口struct sockaddr_in my_addr;bzero(&my_addr,sizeof(my_addr));my_addr.sin_family = AF_INET;my_addr.sin_port = htons(8000);my_addr.sin_addr.s_addr = htonl(INADDR_ANY);	//INADDRESS_ANY实际上是0.0.0.0,泛指主机的所以IP地址。当用该常量去绑定port时,会对所以网卡的对于port进行监听。bind(sockfd,(struct sockaddr *)my_addr,sizeof(my_addr));//3.将IP加入多播组224.0.0.2中struct ip_merq merq;merq.imr_multiaddr.s_addr = inet_addr("224.0.0.2");	//多播组IPmerq.imr_interface.s_addr = htonl(INADDR_ANY);		//将要添加的IP加入多播组//4.设置setsockopt(sockfd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq));while(1){unsigned char buf[1500]="";recvfrom(sockfd, buf ,sizeof(buf), 0, NULL, NULL);printf("buf=%s\n",buf);}close(sockfd);
}

http://chatgpt.dhexx.cn/article/Q9JnL3A1.shtml

相关文章

win10——telnet 开启

1.win10默认没有开启 2.找到控制面板 3.找到Telnet客户端 4.测试 5.退出 ctrl ‘]’ 之后q

windows service2008 2R 开启telnet

1&#xff0c;什么是telnet 可以把telnet当作一种通信协议&#xff0c;对于入侵者而言telnet是一种远程登录的工具。 2&#xff0c;windows开启telnet&#xff08;默认情况下windows系统的telnet功能是关闭的&#xff09; 步骤&#xff1a; ①打开控制面板 输入winR 输入contro…

windows telnet开启

windows下telnet 服务开启 工作中经常要判断服务器某个端口是否连通&#xff0c;如需要看下测试服务器中tomcat的8080端口是否连通&#xff0c;需用到命令 &#xff1a; telnet 192.168.1.101 8080 ,如图&#xff1a; 解决方案 1、telnet在win7下默认是不开启的&#xff0c;所…

服务器系统开启telnet,Telnet怎么打开 Win7/Win8系统开启Telnet服务方法图解

Telnet是管理员常用的远程登录和管理工具&#xff0c;通过在本地电脑上运行Telnet客户端服务&#xff0c;就可以远程控制远端的Telnet服务器了。在Windows 2003/XP/Vista/Win7/Win8系统中都集成有Telnet服务。过默认情况下Telnet服务是被禁用的&#xff0c;需要使用的朋友&…

linux 打开telnet登录,linux开启telnet

Centos6启telnet 安装 [rootntp1 ~]# yum install telnet telnet-server xinetd 开启xinetd自启动和启动xinetd [rootntp1 ~]# chkconfig xinetd on [rootntp1 ~]# service xinetd restart 允许root用户登录 [rootntp1 ~]# vi /etc/pam.d/remote 修改/etc/pam.d/remote&#xf…

如何保存网页上的图片原图,大图

如何保存网页上的图片原图&#xff0c;大图 步骤1&#xff1a; 使用google浏览器&#xff0c;打开网页&#xff0c;按F12&#xff08;或者打开 ‘开发者工具’&#xff09;&#xff0c;点击source&#xff0c;并选择img过滤。可以看到下面的图片链接&#xff0c;如图&#xf…

网页保存成图片

Chrome中网页保存成图片 1、F12 2、Ctrl Shift P 3、输入full firefox网页保存成图片 1、看下附加组件中是否有网页截图&#xff0c;如有&#xff0c;则直接使用即可&#xff0c;无&#xff0c;打开(或下载)就行 2、截图 &#xff08;个人觉得firefox的截图比较灵活&#x…

图片的加载、显示和保存

目录 1.预备知识 2.代码实现 1.预备知识 imread() 加载图片imwrite() 保存图像 imread() 加载图片 有两个参数&#xff0c;第一个参数为字符串形式&#xff0c;也就是图片的路径 第二个参数是一个flag&#xff0c;指定了读取图像的方式&#xff0c; 默认的是加…

图片上传-->保存图片

显示图片的img标签 获取文件读取器 var imageReadernew FileReader(); 使用正则表达式给图片过滤 regexImageFilter /^(?:image/bmp|image/gif|image/jpg|image/jpeg|image/png)$/i; 文件读取器加载时间&#xff0c;在读取文件完成后触发 imageReader.οnlοadfunction(ev…

Python爬虫 自动爬取图片并保存

一、准备工作 用python来实现对图片网站的爬取并保存&#xff0c;以情绪图片为例&#xff0c;搜索可得到下图所示 f12打开源码 在此处可以看到这次我们要爬取的图片的基本信息是在img - scr中 二、代码实现 这次的爬取主要用了如下的第三方库 import re import time import …

保存网页图片的方法

最近ui妹子经常找我....... 当然不是的....只是想让我给他弄两张网页的图片....遂FE退化切图仔.... 话不多说&#xff0c;进入正文。有些朋友因为工作需要&#xff08;比如某鹿某祖等图片好想保存下来天天舔屏&#xff0c;还得是高清的....&#xff09;又不知道如何保存网页中…

图片管理之保存图片数据

保存图片数据 在保存数据之前我们需要先获取图片关联的sku的id 1、获取sku表id 接口分析 请求方式&#xff1a; GET /meiduo_admin/skus/simple/ # -------获取sku的id--------url(rskus/simple/$, images.ImageView.as_view({get: simple})), 请求参数&#xff1a; 通过请…

图片的上传与保存

先找到数据库的用户表点击设计添加 picture 字段与 nvarchar 数据类型 2.更新数据模型&#xff0c;先找到 S_User 表删除&#xff0c;然后再从数据库更新模型并保存 3.先在视图上写出图片上传与保存需要的页面 3.1 { title: ‘头像’, templet: customUserPicture },//头像…

yarn 下载安装

注意 尽量不要使用 npm 下载 yarn 因为可能下载的不是全局的&#xff0c;而且可能没有修改注册表 导致以后下载全局的东西的时候下载失败 如果已经安装了&#xff0c;且出现全局错误提示 可以直接使用 官网安装包 他会自动覆盖你之前的安装&#xff0c;并且擦写 注册表 下…

windows下安装yarn

目录 1.介绍 2.下载和安装 3.配置环境变量和镜像源 1.介绍 最近接触的公司前端项目用到了Yarn&#xff0c;先来了解一下Yarn&#xff0c;Yarn是Facebook最近发布的一款依赖包安装工具。Yarn是一个新的快速安全可信赖的可以替代NPM的依赖管理工具。 官网的说明是 Yarn is …

npm 安装yarn

Yarn是Facebook最近发布的一款依赖包安装工具。Yarn是一个新的快速安全可信赖的可以替代NPM的依赖管理工具 快速安装 //在NPM 中安装 npm install -g yarn MacOS 在Mac上安装比较方便&#xff0c;使用初始化脚本即可 1 curl -o- -L https://yarnpkg.com/install.sh | bash …

yarn常用安装命令

纯属哔哔赖赖瞎扯一下&#xff0c;以前一直用npm install、npm run &#xff0c;突然来yarn&#xff0c;懵逼了&#xff0c;这是啥&#xff1f;感觉应该是和npm一样的东西&#xff0c;只是这里用yarn&#xff0c;难道它是npm更高级的替代品&#xff1f;为什么要替代npm&#xf…

yarn的安装与使用,以及一些常用命令

官网&#xff1a;首页 | Yarn - JavaScript 软件包管理器 | Yarn 中文文档 - Yarn 中文网 1 - 简介 Yarn 对你的代码来说是一个软件包管理器&#xff0c; 你可以通过它使用全世界开发者的代码&#xff0c;或者分享自己的代码给全世界的开发者。Yarn 做这些事情快捷、安全、可靠…

Node.js安装,npm安装yarn步骤

第一步&#xff0c;首先安装npm npm是node.js下的包管理器&#xff0c;node.js的下载网址 Node.js 1.下载安装包后一路无脑点击next最后点击finish即可&#xff0c;安装完成之后打开文件夹就是以下目录。 2.在cmd窗口输入node -v、npm -v查看版本检查是否安装成功 一般完成以…

yarn的下载与安装

yarn的下载与安装 近期老师留关于antd和antv的作业&#xff0c;安装了好久好久的yarn&#xff0c;一直报错如下&#xff1a; 考虑到yarn的安装出错主要是由于没有进行全局安装或者安装路径有问题。用npm安装时较容易导致无法进行全局安装&#xff0c;为了避免这一问题&#xff…