发送方:
/*===============================================
* 文件名称:sendto.c
* 创 建 者:
* 创建日期:2022年09月08日
* 描 述:
================================================*/
#include <stdio.h>
#include <sys/types.h> /* See NOTES
*/
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <strings.h>
#include <unistd.h>
int main(int argc, char *argv[])
{
int sockfd =socket(AF_INET,SOCK_DGRAM,0);
if(-1==sockfd)
{
perror("socket");
return -1;
}
int on=1;
if(-1==setsockopt(sockfd,SOL_SOCKET,SO_BROADCAST,&on,sizeof(on)))
{
perror("setsockopt");
return -1;
}
struct sockaddr_in addr;
bzero(&addr,sizeof(addr));
addr.sin_family=AF_INET;
addr.sin_port=htons(6666);//接收方的端口号
addr.sin_addr.s_addr=inet_addr("192.168.31.255");//广播地址
char buf[1024]="hello xzj";
while (1)
{
if(-1==sendto(sockfd,buf,sizeof(buf),0,(struct sockaddr*)&addr,sizeof(addr)))
{
perror("sendto");
break;
}
}
close (sockfd);
return 0;
}
接收方:
/*===============================================
* 文件名称:recvfrom.c
* 创 建 者:
* 创建日期:2022年09月08日
* 描 述:
================================================*/
#include <stdio.h>
#include <sys/types.h> /* See NOTES
*/
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <strings.h>
#include <unistd.h>
int main(int argc, char *argv[])
{
int sockfd =socket(AF_INET,SOCK_DGRAM,0);
if(-1==sockfd)
{
perror("socket");
return -1;
}
struct sockaddr_in addr;
bzero(&addr,sizeof(addr));
addr.sin_family=AF_INET;
addr.sin_port=htons(6666);//接收方的端口号
addr.sin_addr.s_addr=inet_addr("192.168.31.255");//广播地址
int ret=bind(sockfd,(struct sockaddr *)&addr,sizeof(addr));//绑定sockfd的ip号和端口
if(ret==-1)
{
perror("bind");
return -1;
}
char buf[1024]={0};
while (1)
{
if(-1==recvfrom(sockfd,buf,sizeof(buf),0,NULL,NULL))//接收
{
perror("recvfrom");
break;
}
puts(buf);
}
close (sockfd);
return 0;
}
结果:
本文链接:https://my.lmcjl.com/post/9626.html
4 评论