宁波做360网站推广,网页设计尺寸大小指的是什么,seo网站建设公司哪家好,阿里云wordpress镜像广播#xff1a;一台主机可以将一个数据包同时发送给同一局域网内所有主机#xff1b;在IPV4中#xff0c;广播地址是本网段最大的IP地址或者“255.255.255.255”#xff1b;注意#xff1a;广播本质上是UDP通信技术#xff1b;只有用户数据报套接字才能使用广播的方式一台主机可以将一个数据包同时发送给同一局域网内所有主机在IPV4中广播地址是本网段最大的IP地址或者“255.255.255.255”注意广播本质上是UDP通信技术只有用户数据报套接字才能使用广播的方式设置广播的流程发送方UDP的客户端一、创建用户数据报套接字socket函数 int sockfd socket(AF_INET,SOCK_DGRAM,0);if(-1 sockfd){perror(sockfd error);exit(-1);}二、填充广播信息结构体 struct sockaddr_in struct sockaddr_in serveraddr;socklen_t serveraddr_len sizeof(serveraddr);memset(serveraddr,0,serveraddr_len);serveraddr.sin_family AF_INET;serveraddr.sin_addr.s_addr inet_addr(IP);serveraddr.sin_port htons(PORT);三、设置允许发送广播setsockopt函数 int opt 1;if(-1 (setsockopt(sockfd,SOL_SOCKET,SO_BROADCAST,opt,sizeof(opt)))){perror(setsockopt error);exit(-1);}四、发送广播信息sendto函数 char buf[128] {0};while(true){memset(buf,0,sizeof(buf));fgets(buf,128,stdin);buf[strlen(buf)-1] \0;if(!strncmp(buf,quit,4)){break;}//给服务器发送数据if(-1 (sendto(sockfd,buf,sizeof(buf),0,(struct sockaddr*)serveraddr,serveraddr_len))){perror(sendto error);exit(-1);}}五、关闭用户数据报套接字close函数 close(sockfd);接收方UDP的服务器一、创建用户数据报套接字socket函数 int sockfd socket(AF_INET,SOCK_DGRAM,0);if(-1 sockfd){perror(sockfd error);exit(-1);}二、填充广播信息结构体struct sockaddr_in struct sockaddr_in serveraddr,clientaddr;socklen_t serveraddr_len sizeof(serveraddr);socklen_t clientaddr_len sizeof(clientaddr);memset(serveraddr,0,serveraddr_len);serveraddr.sin_family AF_INET;serveraddr.sin_addr.s_addr inet_addr(IP);serveraddr.sin_port htons(PORT);
三、用户数据报套接字和广播信息结构体绑定bind函数 if(-1 (bind(sockfd,(struct sockaddr *)serveraddr,serveraddr_len))){perror(bind error);exit(-1);}四、接收广播信息(recvfrom函数) char buf[128] {0};while(true){memset(buf,0,sizeof(buf));//接收客户端发来的消息if(-1 (recvfrom(sockfd,buf,sizeof(buf),0,(struct sockaddr*)clientaddr,clientaddr_len))){perror(recvfrom error);exit(-1);}printf(客户端[%s:%d]发来数据[%s]\n,inet_ntoa(clientaddr.sin_addr),ntohs(clientaddr.sin_port),buf);}
五、关闭用户数据报套接字close函数 close(sockfd);