广播与组播,超时检测

devtools/2024/11/13 9:09:49/

目录

一.超时检测

必要性

超时检测的设置方法

1.  通过函数自带的参数设置

     2.  通过设置套接字属性进行设置

3.  alarm函数与sigaction函数结合

二.广播与组播(broadcast & multicast)

1.  广播(udp)

理论:

发送者

接收者

2.  组(多)播(udp)

理论

发送者

接收者

一.超时检测

必要性

1.  避免进程进入无限制的阻塞

2.  在规定的时间内未完成相应的语句可以执行其他的语句

超时检测的设置方法

1.  通过函数自带的参数设置

        select poll

     2.  通过设置套接字属性进行设置

3.  alarm函数sigaction函数结合

int sigaction(int signum, const struct sigaction *act,struct sigaction *oldact);
功能:对接收到的指定信号处理
参数:signum:要捕获的信号act:接收到信号之后对信号进行处理的结构体oldact:接收到信号之后,保存原来对此信号处理的各种方式与信号(可用来做备份)。如果不需要备份,此处可以填NULL
struct sigaction 
{void     (*sa_handler)(int); //信号处理函数void     (*sa_sigaction)(int, siginfo_t *, void *);  //查看信号的各种详细信息sigset_t   sa_mask;int        sa_flags;      //信号属性; SA_RESTART自重启属性
#define SA_RESTART  0x10000000void     (*sa_restorer)(void);//不再使用};     //设置信号属性struct sigaction act;sigaction(SIGALRM,NULL,&act);//获取原属性act.sa_handler=handler;//修改属性sigaction(SIGALRM,&act,NULL);//将修改的属性设置回去
返回值:成功:0出错:-1,并将errno设置为指示错误

二.广播与组播(broadcast & multicast)

1.  广播udp)

理论:

前面介绍的数据包发送方式只有一个接受方,称为单播

如果同时发给局域网中的所有主机,称为广播

只有用户数据报(使用UDP协议)套接字才能广播

一般被设计成局域网搜索协议

● 广播地址:局域网中主机号最大的一个 192.168.50.255

发送者

1.  创建数据报套接字

2.  由于原本的套接字不允许广播,所以要设置广播属性

3.  指定网络信息(接收者)

4.  发送消息

5.  关闭套接字

接收者

1.  创建数据报套接字

2.  指定网络信息(接收者)

3.  绑定套接字

4.  接收消息

5.  关闭套接字

缺点:

        广播方式发给所有的主机,过多的广播会大量的占用网络带宽,造成广播风暴,影响正常的通信

        广播风暴: 网络长时间被大量的广播数据包所占用,使正常的点对点通信无法正常进行,其外在表现为网络速度奇慢无比,甚至导致网络瘫痪

2.  组(多)播udp)

理论

单播方式只能发给一个接收方。

广播方式发给所有的主机。过多的广播会大量占用网络带宽,造成广播风暴,影响正常的通信。

播是一个人发送,加入到多播组的人接收数据。

多播方式既可以发给多个主机,又能避免像广播那样带来过多的负载(每台主机要到传输层才能判断广播包是否要处理)

● D类:224.0.0.0-239.255.255.255

发送者

1.  创建数据报套接字

2.  指定网络信息(接收者)

3.  发送消息

4.  关闭套接字

接收者

1.  创建数据报套接字

2.  设置多播属性,将自己的IP加入到多播组中

3.  指定网络信息(接收者)

4.  绑定套接字

5.  接收消息

6.  关闭套接字


http://www.ppmy.cn/devtools/112695.html

相关文章

什么是外贸专用路由器?

一、外贸专用路由器的显著特点 全球兼容性 外贸专用路由器支持多种国际通信标准和频段,能够无缝连接不同国家和地区的网络,从而避免因地域限制导致的网络问题。这种全球兼容性确保了外贸企业在全球范围内的网络部署更加顺畅,让企业在任何角落…

对抗性EM用于变分深度学习:在低剂量PET和低剂量CT中的半监督图像质量增强应用|文献速递--Transformer架构在医学影像分析中的应用

Title 题目 Adversarial EM for variational deep learning: Application to semi-supervised image quality enhancement in low-dose PET and low-dose CT 对抗性EM用于变分深度学习:在低剂量PET和低剂量CT中的半监督图像质量增强应用 01 文献速递介绍 医学影…

『功能项目』战士的伤害型技能【45】

我们打开上一篇44战士职业平A怪物掉血的项目, 本章要做的事情是制作技能按钮,点鼠标点击时释放对范围内怪物的伤害技能 首先双击打开资源脚本下的Canvas预制体 制作技能栏 在资源商店中下载免费资源 - 技能图片 将技能图片拖拽至技能栏的Button按钮组件…

深入理解Python中的魔法参数 *args 和 **kwargs

在Python编程中,函数的灵活性是其强大之处之一。其中,*args 和 **kwargs 是实现函数参数可变性的重要工具。 无论我们是Python初学者还是经验丰富的开发者,充分理解这两个概念都有助于编写更加灵活、高效的代码。 本文将深入探讨*args和**kw…

1、常用的数据库、表操作

基本的建表和数据库拷贝操作。 一、数据定义语言DDL show databases; # 查看全部数据库 show create database db; # 查看数据库db create database db; # 创建数据库db drop database db; # 删除数据库db use db; # 使用数据库db基本…

动态规划(算法)---03.斐波那契数列模型_最小花费爬楼梯

题目链接: 746. 使用最小花费爬楼梯 - 力扣(LeetCode)https://leetcode.cn/problems/min-cost-climbing-stairs/description/ 一、题目解析 题目: 解析: 题目说cost[i]为从某一个台阶向上爬的的费用,我们…

网络原理2-网络层与数据链路层

目录 网络层数据链路层 网络层 网络层做的工作: 1、地址管理–>IP地址 2、路由选择–>数据包传输的路径规划 网络层主要的协议就是IP协议 IP协议的报头结构: 4位版本: 有两个取值,4表示IPv4,6表示IPv6&am…

【Web】XGCTF 西瓜杯 超详细题解

目录 CodeInject tpdoor easy_polluted Ezzz_php CodeInject eval里打代码注入 11);system("tac /0*");// tpdoor 可以传参isCache给../../config/route.php写入$config[request_cache_key] 打的是CheckRequestCache中间件解析的漏洞 think\middleware\Ch…