SylixOS广播收发demo
SylixOS广播收发demo
SylixOS的广播使用注意事项:
1. SylixOS网卡的掩码为:255.255.255.0;
2.SylixOS广播接收程序需要设置
SO_BROADCAST(请参考例程)。
SylixOS广播参考例程:
广播接收端:
#include <stdio.h>
#include <arpa/inet.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/socket.h>
int main(int argc,char *argv[])
{
int fd;
struct sockaddr_in server;
struct sockaddr_in client;
int status;
int so_boradcast=1;
//IPv4 UDP
fd=socket(AF_INET,SOCK_DGRAM,0);
//端口号
server.sin_port=htons(8888);
server.sin_addr.s_addr=INADDR_ANY;
server.sin_family=AF_INET;
setsockopt(fd,SOL_SOCKET,SO_BROADCAST,&so_boradcast,sizeof(so_boradcast));
//绑定地址
status=bind(fd,(struct sockaddr *)&server,sizeof(struct sockaddr));
if(status<0)
{
printf(" bind() error\n");
exit(1);
}
//接收Buffer
char buff[1024];
socklen_t len=sizeof(struct sockaddr);
while(1)
{
//接收
recvfrom(fd,buff,1024,0,(struct sockaddr *)&client,&len);
//打印接收到的信息
printf("%s\n",buff);
}
return 0;
}
广播发送端:
#include <stdio.h>
#include <arpa/inet.h>
#include <string.h>
#include <sys/ioctl.h>
#include <net/if.h>
#include <unistd.h>
#include <sys/socket.h>
int main(void)
{
struct sockaddr_in all;
int fd;
//广播消息
char buff[]="this is a broadcast message";
int so_boradcast=1;
//IPv4 UDP
fd=socket(AF_INET,SOCK_DGRAM,0);
//广播地址,用ifconfig查看得到
all.sin_addr.s_addr=inet_addr("192.168.7.255");
all.sin_family=AF_INET;
//端口号
all.sin_port=htons(8888);
//设置socket为广播
setsockopt(fd,SOL_SOCKET,SO_BROADCAST,&so_boradcast,sizeof(so_boradcast));
while(1)
{
//广播
sendto(fd,buff,strlen(buff),0,(struct sockaddr *)&all,sizeof(all));
//延时1秒
sleep(1);
}
return 0;
}
Related Articles
冗余网卡使用笔记
1. 适用范围 本文档适用对象(SylixOS 驱动、应用工程师或用户等),适用对象应该具备 SylixOS 驱动、应用方面的知识,本文档用于调试网卡冗余工程。 2. 原理概述 2.1 网卡冗余 冗余含义是指人为增加重复部分,其目的是用来对原本的单一部分进行备份,以达到增强其安全性的目的,这在信息通信系统当中有着较为广泛的应用。 3. 准备工作 3.1 环境准备 硬件:支持安装 SylixOS 并拥有两个以上网卡设备机或板卡。 软件:SylixOS。 ...
SylixOS 的 socket 属性设置
SylixOS 主要支持以下socket属性 协议族 Level(级别) optname(选项名) Get Set 说明 标志 数据类型 AF_PACKET SOL_PACKET PACKET_ADD_MEMBERSHIP * 加入多播组 PACKET_DROP_MEMBERSHIP * 离开多播组 PACKET_RECV_OUTPUT * 接收链路层数据包 PACKET_RX_RING * PACKET_VERSION * ...
SylixOS 中冗余网卡主从模式等具体绑定操作步骤
1. 适用范围 适用于需要进行冗余网卡绑定的操作,例如需要配置双网卡绑定主从模式的情况。 2. 原理概述 网卡 bond 是通过多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,在生产场景中是一种常用的技术。 网卡冗余:冗余含义是指人为增加重复部分,其目的是用来对原本的单一部分进行备份,以达到增强其安全性的目的,这在信息通 信系统当中有着较为广泛的应用。 3. 准备工作 硬件:支持安装 SylixOS 并拥有两个以上网卡设备机或板卡; 软件:SylixOS 系统镜像。 ...
Linux工程移植笔记-基于arping案例
1. arping简介 arp(Address Resultion Protocol)地址解析协议,是通过解析网络层地址来找寻数据链路层地址。 ...
SylixOS 协议栈学习(一)网络接口结构
1) netif 的结构体来描述一个硬件网络接口的。 struct netif { struct netif *next; // 指向下一个 netif 结构的指针 struct ip_addr ip_addr; // IP 地址相关配置 struct ip_addr netmask; struct ...