同一局域网内通过发送广播,同网段IP都能收到信息

简介: 广播概述:由一台主机向该主机所在子网内的所有主机发送数据的方式

广播概述:由一台主机向该主机所在子网内的所有主机发送数据的方式


广播的特点 1、处于同一子网的所有主机都必须处理数据


2、UDP 数据包会沿协议栈向上一直到 UDP 层


3、运行音视频等较高速率工作的应用,会带来巨大负担


4、局限于局域网内使用

**广播的分类:**定向广播地址:网段最后一位地址为255.

受限广播地址:255.255.255.255。


例子:


#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <pthread.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char const *argv[])
{    
int sockfd = socket(AF_INET, SOCK_DGRAM,0);
    //设置sockfd具备广播 功能    
    int yes = 1;    
    setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, &yes,sizeof(int));
    struct sockaddr_in dst_addr;    
    bzero(&dst_addr,sizeof(dst_addr));    
    dst_addr.sin_family = AF_INET;    
    dst_addr.sin_port = htons(8080);    
    dst_addr.sin_addr.s_addr = inet_addr("10.0.121.255");
    sendto(sockfd,"hehe",strlen("hehe"),0, (struct sockaddr *)&dst_addr,sizeof(dst_addr));
    close(sockfd);    
    return 0;
    }


相关文章
|
Linux
将数据包发往10.0.0.0/24网络,并通过eth1网卡发送
如果你想将数据包发往10.0.0.0/24网络,并通过eth1网卡发送,可以按照以下步骤设置路由规则: 1. 使用root用户或具有sudo权限的用户登录到CentOS服务器。 2. 使用以下命令查看当前的路由表: ``` ip route show ``` 3. 使用以下命令添加新的路由规则: ``` sudo ip route add 10.0.0.0/24 dev eth1 ``` 这条命令将设置一个直接路由,将发往10.0.0.0/24网络的数据包发送到eth1网卡上。 4. 使用以下命令验证新的路由规则是否生效: ```
104 0
|
2月前
|
监控
交换机中接收数据帧
【10月更文挑战第1天】
56 1
|
4月前
|
网络协议 搜索推荐
网络中的单播、多播和广播
【8月更文挑战第24天】
166 0
|
存储 缓存 网络协议
交换机、IP地址、ARP协议
划分洪泛范围—隔离广播域(收到所有洪泛信息的设备集合) 每一个接口都是一个广播域 转发数据 路由表
125 0
|
存储 缓存 编解码
ICMP 路由器发现消息
此 RFC 为 Internet 社区指定了 IAB 标准跟踪协议,并请求讨论和改进建议。本协议的标准化状态及现状请参考现行版本的《IAB官方协议标准》。本文档是 IETF 路由器发现工作组的产品。本备忘录的分发不受限制。
500 0
|
网络协议 网络虚拟化 网络架构
ensp 进入交换机子接口、让子接口认识vlanid的数据帧、开启路由器的arp广播:实现pc之间的通信。
ensp 进入交换机子接口、让子接口认识vlanid的数据帧、开启路由器的arp广播:实现pc之间的通信。
408 0
ensp 进入交换机子接口、让子接口认识vlanid的数据帧、开启路由器的arp广播:实现pc之间的通信。
recvfrom获取对端地址
recvfrom获取对端地址
149 0
Qt 使用UDP广播来寻找当前网段内在线设备
这里简单说明一下,UDP通信分为三种,分别为单播,组播和广播。这三种方式都需要在Qt中添加网络模块并包含头文件
595 0
Qt 使用UDP广播来寻找当前网段内在线设备