网络编程(六)

网络编程(六)

  • 广播&组播
    • 广播
      • 步骤
    • 组播
      • 步骤

广播&组播

广播

是一种基于1发送多接收的模型 (发送方和接收方)
广播是在局域网内实现的(发送到广播地址上的消息是会被局域网内同网段的所有主机进行接收,接收方的主机不能拒绝,除非接收方关闭了相应的接收消息的进程。)
弊端:广播会出现大量宽带的问题,继而出现“广播风暴“的现象。
广播实现的思路:
发送方可以将数据给局域网内某网段的广播地址上推送消息,同网段之后的所有主机就可以接收到。
广播地址的形式:保留网络地址不变(子网掩码也是默认形式)的情况下,将主机地址的最大值取到
255,该IP地址就称为“广播地址”。
eg:IP地址为:192.168.13.110 子网掩码为:255.255.255.0 —》广播地址为:192.168.13.255

在这里插入图片描述
在这里插入图片描述

步骤

在这里插入图片描述

  1. 设计广播发送和接收程序只能使用数据报套接字
  2. 广播地址:是该局域网中IP地址最大的地址,如192.168.15.255
  3. 万能广播地址:255.255.255.255在所有网段中都代表广播地址

步骤
发送端:client

  1. socket创建数据报套接字
  2. setsockopt设置允许广播包
  3. sendto():IP为广播地址

在这里插入图片描述
接收端:server

  1. socket
  2. bind
  3. recvfrom
    在这里插入图片描述

组播

单播方式只能发给一个接收方。
广播方式发给所有的主机。过多的广播会大量占用网络带宽,造成广播风暴,影响正常的通信。
组播(又称为多播)是一种折中的方式。只有加入某个多播组的主机才能收到数据。
多播方式既可以发给多个主机,又能避免象广播那样带来过多的负载(每台主机要到传输层才能判断广播
包是否要处理)

D类IP(网络地址的最高位必须为1110):组播地址!!!
组播地址的范围:224.0.0.0 ~ 239.255.255.255

224.0.0.0~224.0.0.255为预留的组播地址(永久组地址),地址224.0.0.0保留不做分配,其它地
址供路由协议使用;
224.0.1.0~224.0.1.255是公用组播地址,可以用于Internet;
224.0.2.0~238.255.255.255为用户可用的组播地址(临时组地址),全网范围内有效;
239.0.0.0~239.255.255.255为本地管理组播地址,仅在特定的本地范围内有效

步骤

发送端(client):

  • socket
  • sendto(),IP地址为组播地址

在这里插入图片描述
接收端(server):

  • socket
  • 加入组播组:setsockopt
  • bind
  • recvform

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/675412.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[Redis]Set类型

集合类型也是保存多个字符串类型的元素的,但和列表类型不同的是,集合中 1)元素之间是无序的 2)元素不允许重复 一个集合中最多可以存储2^32-1个元素。 Redis 除了支持集合内的增删查改操作,同时还支持多个集合取交…

深入探讨ChatGPT API中的Tokens计算方式和计算库

引言 在现代人工智能应用中,自然语言处理(NLP)技术无疑是最受关注的领域之一。OpenAI推出的ChatGPT,作为一种先进的对话模型,已经在多个领域展示了其强大的语言生成能力。为了更好地使用ChatGPT API,理解其…

操作系统(3) 处理机调度

目录 一、处理机调度概述 1.基本准则 (1)CPU利用率 (2)系统吞吐量 (3)周转时间 (4)等待时间 (5)响应时间 2.进程调度方式 (1&#xff0…

【Linux】深入理解进程的优先级(Linux 2.6版本O(1)调度算法)

进程的优先级 【前置知识】一、进程的优先级(一)为什么要有优先级?(二)进程的优先级的范围 二、操作系统是如何实现进程的优先级?(Linux内核2.6版本O(1)调度算法) 【前置知识】 首先我们要了解…

【excel】设置二级可变联动菜单

文章目录 【需求】在一级菜单选定后,二级菜单联动显示一级菜单下的可选项【步骤】step1 制作辅助列1.列转行2.在辅助列中匹配班级成员 step2 名称管理器step3 制作二级下拉菜单step4 消除二级菜单中的空白 【总结】 之前做完了 【excel】设置可变下拉菜单&#xff…

导航时间与坐标转换

前言: 该章节代码均在Gitee中开源:因为这章是学校作业,所以稍微正经点. 时空位置转换https://gitee.com/Ehundred/navigation-engineering/tree/master/%E5%8D%AB%E6%98%9F%E5%AF%BC%E8%88%AA%E5%8E%9F%E7%90%86/%E5%AF%BC%E8%88%AA%E6%97…

Idea-Linux远程开发部署

第一步:File->Remote Development 第二步: 第三步: 第四步:在Host位置填写Linux虚拟机的IP地址,在Username、Password填写对应的账号密码后点击Test Connection测试连接。 第五步: 第六步:在…

【leetcode--文本对齐(还没整理完)】

根据题干描述的贪心算法,对于每一行,我们首先确定最多的是可以放置多少单词,这样可以得到该行的空格个数,从而确定该行单词之间的空格个数。 根据题目中填充空格的细节,我们分以下三种情况讨论: 当前行是…

Vue——样式绑定的几种方式

文章目录 前言往期回顾绑定对象绑定对象的另一种写法绑定数组数组与对象的嵌套 前言 样式绑定在vue中属于一种很常见的操作。在之前博客中针对样式的绑定操作,介绍了一个指令v-bind。缩写为:xxx。 vue 官网 样式绑定 往期回顾 先简单回顾下最开始绑定标签样式的操…

搭建gateway网关

1.创建springBoot项目 可以将Server URL换成start.aliyun.com 2.配置路由与跨域处理 路由: server:port: 10010 # 网关端口 spring:application:name: gateway # 服务名称cloud:nacos:server-addr: localhost:8848 # nacos地址gateway:routes: # 网关路由配置- i…

Java的冷知识你知道吗?

1、方法参数不能超过255个 在Java中,方法的参数数量是有限制的,最多不能超过255个。这个知识点可能对于大多数程序员来说并不常用,因此即使是经验丰富的Java开发者也可能不清楚这一点。2、Java中的自动装箱与拆箱 自动装箱是Java 5引入的新特…

站点被篡改快照被劫持解决服务方法教程_一招制敌

站点被篡改快照被劫持解决服务方法教程_一招制敌 被篡改表现形式: 站点打不开或跳转到别的网站。 攻击者目的: 报复、勒索、卖防御产品(如DDOS防御产品)。 攻击成本: 工具(如VPN购买)成本、人…

当新手小白有了一块【香橙派OrangePi AIpro】.Demo

当新手小白有了一块【香橙派OrangePi AIpro】.Demo 文章目录 当新手小白有了一块【香橙派OrangePi AIpro】.Demo一、香橙派OrangePi AIpro概述1.简介2.引脚图 二、“点亮”香橙派OrangePi AIpro1.官方工具下载2.官方镜像下载3.镜像烧录4.访问香橙派 AIpro 三、香橙派OrangePi A…

数据结构第三篇【链表的相关知识点一及在线OJ习题】

数据结构第三篇【链表的相关知识点一及在线OJ习题】 链表链表的实现链表OJ习题顺序表和链表的区别和联系 本文章主要讲解关于链表的相关知识,喜欢的可以三连喔 😀😃😄😄😊😊🙃&#…

Dubbo 自定义 Filter 编码实例

Dubbo的Filter机制为我们做应用的扩展设计提供了很多可能性,这里的Filter也是“责任链”机制的一种实现场景,作为Java码农,我们也经常接触到很多责任链的实现场景,如Tomcat进入Servlet前的filter,如Spring Aop代理的链…

性能飙升50%,react-virtualized-list如何优化大数据集滚动渲染

在处理大规模数据集渲染时,前端性能常常面临巨大的挑战。本文将探讨 react-virtualized-list 库如何通过虚拟化技术和 Intersection Observer API,实现前端渲染性能飙升 50% 的突破!除此之外,我们一同探究下该库还支持哪些新的特性…

自友科技破解走班教育排课难题

新高考后,校园教务都面临着晋级,其中走班教育的分班排课是个巨大的挑战。 所以在分班排课的时候要清楚一下几个问题 一是:清楚的核算学生的选考科目。学生选科提交后做好并承认,最好是在分班后不要改或很少的一部分人改动。 二是…

手写防抖debounce

手写防抖debounce 应用场景 当需要在事件频繁触发时,只执行最后一次操作,可以使用防抖函数来控制函数的执行频率,比如窗口resize事件和输入框input事件; 这段代码定义了一个名为 debounce 的函数,它接收两个参数:fn…

linux中最基础使用的命令

小白学习记录: 前情提要:Linux命令基础格式!查看 ls看目录的小技巧 进入指定目录 cd查看当前工作目录 pwd创建一个新的目录(文件夹) mkdir创建文件 touch查看文件内容 cat、more操作文件、文件夹- 复制 cp- 移动 mv- 删除【危险操作&#xff…

Scrum 的速度如何衡量和提高

了解你的 Scrum 团队的实际开发速度是非常多敏捷团队的诉求,而速度(Velocity)作为敏捷项目的度量工具,为管理者提供了对团队工作能力深入了解的机会。 这份指南将深入探讨 Scrum 中速度的概念,指导你如何进行计算&…