linux广播通讯
来源:互联网 发布:阿里云备案幕布多少钱 编辑:程序博客网 时间:2024/06/09 15:29
发送端
#include <stdio.h>
#include <sys/types.h> /* See NOTES */
#include <sys/socket.h>
#include <netinet/in.h>
#include <strings.h>
#include <stdlib.h>
int main(void)
{
int sockfd;
struct sockaddr_in baddr;
int addr_len=sizeof(baddr);
char buf[100];
bzero(&baddr,sizeof(baddr));
/***AF_INT*网络SOCKET**************/
baddr.sin_family=AF_INET;
/***********通讯端口9000************/
baddr.sin_port=htons(9000);
/***192.168.1.255***是192.168.1网段的广播的地址*****/
baddr.sin_addr.s_addr=inet_addr("192.168.1.255");
/******************/
if((sockfd= socket(AF_INET,SOCK_DGRAM,0))<0)
{
perror("socket:");
exit(-1);
}
/******************广播发送端不需要地址绑定*******/
//bind(sockfd,(struct sockaddr*)&baddr,&addr_len);
/******************设置sockfd 为网络广播方式*******/
int on=1;
setsockopt(sockfd,SOL_SOCKET,SO_BROADCAST,&on,sizeof(on));
while(1)
{
fgets(buf,10,stdin);
/******************通过广播地址发送*************/
sendto(sockfd,buf,10,0,(struct sockaddr*)&baddr,sizeof(baddr));
}
}
接受端
#include <stdio.h>
#include <sys/types.h> /* See NOTES */
#include <sys/socket.h>
#include <netinet/in.h>
#include <strings.h>
#include <stdlib.h>
int main(void)
{
int sockfd;
struct sockaddr_in baddr;
struct sockaddr_in rcvd;
int addr_len=sizeof(baddr);
char buf[100];
bzero(&baddr,sizeof(baddr));
baddr.sin_family=AF_INET;
/**********接受端的端口必须与发送端口一致**********/
baddr.sin_port=htons(9000);
/**********0.0.0.0 代表本地通讯接口***************/
baddr.sin_addr.s_addr=inet_addr("0.0.0.0");
if((sockfd= socket(AF_INET,SOCK_DGRAM,0))<0)
{
perror("socket:");
exit(-1);
}
/******************绑定通讯端口*******************/
bind(sockfd,(struct sockaddr*)&baddr,addr_len);
/******************设置通讯模式为广播模式*********/
int on=1;
setsockopt(sockfd,SOL_SOCKET,SO_BROADCAST,&on,sizeof(on));
while(1)
{
//fgets(buf,10,stdin);
/*************打印接受端口******************/
recvfrom(sockfd,buf,10,0,(struct sockaddr*)&rcvd,&addr_len);
printf("%d\n",ntohs(rcvd.sin_port));
}
}
- linux广播通讯
- Linux网络编程一步一步学-UDP方式广播通讯
- linux上用户之间的通讯及管理员的广播
- udp 广播通讯
- UDP 网络广播通讯
- 【广播】两个Activity进行广播通讯
- UDP点对点通讯、广播通讯、多播通讯
- UDP点对点通讯、广播通讯、多播通讯 .
- UDP点对点通讯、广播通讯、多播通讯
- linux 广播
- 多点通讯与多址广播语义
- java udp 广播及socket通讯
- android 广播实现activity之间的通讯
- Android之进程通讯——广播
- Android之进程通讯——广播
- EventBus实现广播与Activity通讯
- Linux——广播
- linux上广播消息
- ORA-00918: column ambiguously defined解决之道
- android RadioButton注意事项
- HASH传递攻击
- VC++ 非模态对话框
- SEO知识积累
- linux广播通讯
- 黑马程序员—2、JAVA基础语法
- 简明Vim练级攻略
- Ubuntu下代替dos2unix命令 (转自两个文件)
- 编译器编译原理详解
- 从大量整数中选取最小/大的若干个
- B-Tree, B+Tree, B*树介绍
- C++解析JSON的好文章
- 异常:HRESULT: 0x80070057 (E_INVALIDARG)) 解决方案