linux网络编程4

24.9.20学习目录

  • 一.UDP(续)
    • 1.广播
      • 广播流程
    • 2.多播
      • 多播流程

一.UDP(续)

1.广播

由一台主机向该主机所在子网内的所有主机发送数据的方式;
广播只能用UDP或原始IP实现,不能使用TCP;
其作用是将单个服务器与多个客户主机通信时减少分组流通;

用到广播的协议如下:

  • 地址解析协议(ARP)
  • 动态主机配置协议(DHCP)
  • 网络时间协议(NTP)

特点:

  • 处于同一子网的所有主机都必须处理数据
  • UDP数据包会沿协议栈向上一直到UDP层
  • 运行音频等高速率工作的应用,会带来较大的负担
  • 局限于局域网内使用
  • 当数据传入到链路层时不会进行阻拦,只到传输到网络层时,查看当前端口是否在进行,如果没有则舍弃
  • 在IPv6中是不可以选的,IPv4可以选用

广播流程

发送者:

  1. 创建套接字
  2. 设置为允许发送广播权限setsockopt()
  3. 向广播地址发送数据sendto()
//设置套接字的属性
int setsockopt(int sockfd,int level,int optname,const void *optval,socklen_t optlen);

level:SOL_SOCKET(套接字层次)
optname:SO_BROADCAST(允许发送广播数据包)、SO_RCVBUF(接收缓冲区大小)、SO_SNDBUF(发送缓冲区大小)

接收者:

  1. 创建套接字
  2. 将套接字与广播的信息结构体绑定
  3. 接收数据recvfrom()

2.多播

数据的收发仅仅在同一分组中运行;
其又称为组播;
在IPv4中其地址为D类地址

特点:

  • 多播地址标示一组接口
  • 多播可以用于广域网使用
  • 在IPv4中多播是可选的
  • 相对于广播,多播具有可控性

多播使用的结构体:

struct in_addr
{in_addr_t s_addr;
};struct ip_mreq
{struct in_addr imr_multiaddr;//多播组IPstruct in_addr imr_interface;//将要添加到多播组的IP
};

多播流程

发送者:

  1. 创建套接字
  2. 发送数据

接收者:

  1. 创建套接字
  2. 设置加入多播组setsocketopt()
  3. 套接字的绑定
  4. 接收数据
int setsockopt(int sockfd,int level,int optname,const void *optval,socklen_t optlen);

level:IPPROTO_IP
optname:IP_ADD_MEMBERSHIP(加入多播组)、IP_DROP_MEMBERSHIP(离开多播组)
optval:多播的结构体

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ARM驱动学习之9注册字符类设备

ARM驱动学习之9注册字符类设备 • 分配内存空间函数kmalloc – 分配连续的虚拟地址,用于小内存分配。在include/linux/slab.h文件中。 – 参数1:申请的内存大小(最大128K), – 参数2:GFP_KERNEL,代表优先权&#xff0…

Tomcat服务器—Windows下载配置详细教程

一、关于 1.1 简介 Tomcat是一个开源的Java Servlet容器和Web服务器,由Apache软件基金会维护。它实现了Java Servlet和JavaServer Pages (JSP) 规范,用于运行Java Web应用程序。Tomcat支持多种Java EE功能,并提供了高效的性能和可扩展性&am…

光伏电站的方案报告包含哪些内容

光伏电站的方案报告是一个综合性的文档,它详细描述了光伏电站项目的规划、设计、施工、运营及维护等各个环节。一个完整的光伏电站方案报告通常包含以下内容: 一、项目概述 项目背景:介绍光伏电站建设的背景、目的和意义,包括能…

如何在C++中使用Poppler库读取PDF文件(一)

如果只是读取、渲染pdf文件,除了mupdf以外,在Linux系统中还可以使用Poppler库。Poppler的历史非常古老,X窗口系统中的pdf查看工具xpdf,使用的就是poppler。 Poppler在Linux各发行版,以及BSD族系统之中,都有…

ARM驱动学习之7 驱动模块传参数

ARM驱动学习之7 驱动模块传参数 1.02_DriverModule_01例程的基础上编写简单模块module_param Makefile 文件名字修改为module_param clean部分:rm -rf *.mod.c *.o *.order *.ko *.mod.o *.symvers2.修改module_param.c (1):添加头文件 //定义module_param module…

Qt Linguist 短语书批量导入翻译.ts导入.qph

文章目录 前言一、准备工作 将ts文件和python文件放到一个根目录下二、执行如下代码 比如这个python文件名字叫test.py三、在根目录下打开powershell之类的控制台,执行python test.py总结 前言 在开发Qt软件过程中,不免需要涉及到翻译软件界面的工作。于…

华为OD机试 - 分解正整数 - 数学推导(Python/JS/C/C++ 2024 D卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,…

线程调优——调整线程池参数提升程序执行效率

先抛出一个问题,程序开发真的是线程越多效率越高吗?多线程是我们程序开发中必不可少的手段,线程就像“孙悟空”开启了分身术一样,每个分身都在“打妖怪”,那是不是分身越多,“打妖怪”的效率就越高&#xf…

Redisson实现分布式锁(看门狗机制)

目录 可重入锁: 锁重试和看门狗机制: 主从一致性: 首先引入依赖,配置好信息 3.使用Redisson的分布式锁 可重入锁: 可重入锁实现是通过redsi中的hash实现的,key依旧是业务名称加id,然后第一个…

如何成立一家自己的等级保护测评机构?需要哪些条件?有哪些要求?

给大家的福利,点击下方蓝色字 即可免费领取↓↓↓ 🤟 基于入门网络安全/黑客打造的:👉黑客&网络安全入门&进阶学习资源包 前言 各省、自治区、直辖市公安厅、局网络安全保卫总队,新疆生产建设兵团公安局网络安…

【高分系列卫星简介——高分一号(GF-1)】

高分一号卫星(GF-1) 高分一号(GF-1)是中国高分辨率对地观测系统(简称“高分专项”)的第一颗卫星,具有里程碑式的意义。以下是对高分一号卫星的详细介绍: 一、基本信息 发射时间&…

2024华为杯研究生数学建模竞赛(研赛)选题建议+初步分析

提示&#xff1a;C君认为的难度&#xff1a;DE<C<F&#xff0c;开放度&#xff1a;CDE>F。 华为专项的题目&#xff08;A、B题&#xff09;暂不进行选题分析&#xff0c;不太建议大多数同学选择&#xff0c;对自己专业技能有很大自信的可以选择华为专项的题目。后续会…

MyBatis-config.xml核心配置

MyBatis-config.xml 包含了会深深影响MyBatis行为的设置和属性信息&#xff0c;配置文档的顶层结构如下 environments&#xff08;环境配置&#xff09; environments用于配置数据库的URL信息&#xff0c;MyBatis-config可以动态配置多个数据源&#xff0c;用于连生产、预发、…

用 HTML + JavaScript DIY 一个渐进式延迟法定退休年龄测算器

为减轻社会和个人因退休年龄变化带来的冲击&#xff0c;近日&#xff0c;全国人民代表大会常务委员会正式发布了关于实施渐进式延迟法定退休年龄的重要决定。 根据该决定&#xff0c;我国将同步启动对男、女职工法定退休年龄的延迟计划。这一调整将采取渐进式的方式进行&#…

RabbitMQ 高级特性——发送方确认

文章目录 前言发送方确认confirm 确认模式return 退回模式 常见面试题 前言 前面我们学习了 RabbitMQ 中交换机、队列和消息的持久化&#xff0c;这样能够保证存储在 RabbitMQ Broker 中的交换机和队列中的消息实现持久化&#xff0c;就算 RabbitMQ 服务发生了重启或者是宕机&…

Nginx实用篇:实现负载均衡、限流与动静分离

Nginx实用篇&#xff1a;实现负载均衡、限流与动静分离 | 原创作者/编辑&#xff1a;凯哥Java | 分类&#xff1a;Nginx学习系列教程 Nginx 作为一款高性能的 HTTP 服务器及反向代理解决方案&#xff0c;在互联网架构中扮演着至关重要的角色。它…

C++ 知识要点:变量

一.变量 1. 全局变量与 static 变量&#xff08;作用域、生存周期&#xff09; 全局变量 作用域&#xff1a;全局变量的作用域从它被定义的地方开始&#xff0c;一直到程序结束。在定义它的文件内部以及通过 extern 关键字在其他文件中都可以访问。生存周期&#xff1a;全局…

TCP 和 UDP 协议的区别?

参考TCP 和 UDP的区别_tcp和udp的区别-CSDN博客

Acwing DFS

DFS&#xff1a;深度优先搜索 DFS与BFS的对比 DFS使用栈来实现&#xff0c;BFS使用队列来实现 DFS所需要的空间是 O ( h ) O(h) O(h),而BFS需要的空间是 O ( 2 h ) O(2^h) O(2h),其中h是树的高度&#xff1b; DFS不具有最短路的特性&#xff0c;BFS有最短路的特性 DFS回溯…

102.SAPUI5 sap.ndc.BarcodeScannerButton调用摄像头时,localhost访问正常,使用IP访问失败

目录 原因 解决办法 1.修改谷歌浏览器的setting 2.在tomcat中配置https访问 参考 使用SAPUI5的sap.ndc.BarcodeScannerButton调用摄像头时&#xff0c;localhost访问正常&#xff0c;使用IP访问时&#xff0c;一直打不开摄像头&#xff0c;提示getUserMedia()问题。 原因…