⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 udp_recv_netparam.c

📁 使用udp的broadcast方式写的c程序
💻 C
字号:
/*************本程序用于创建服务端程序*****************/#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <stdio.h> #include <errno.h> #include "msgstruct.h"nettype *upd_receive_ip(){ 	int sockfd,n,addrlen,loop; 	struct sockaddr_in server_addr;  /*服务器地址信息*/	struct sockaddr_in client_addr;   /*客户端地址信息*/		static nettype init;	nettype * getmsg;	getmsg = (nettype *)&init;	sockfd=socket(AF_INET,SOCK_DGRAM,0); /*创建数据报套接字*/	if(sockfd<0) { 		printf("Socket Error:%s\n",strerror(errno)); 		return NULL; 	} 	loop = 1;	if(setsockopt(sockfd,SOL_SOCKET, SO_REUSEADDR,&loop, sizeof(loop)) < 0) { 		perror("setsockopt:SO_REUSEADDR");		exit(-1);	}	/* 服务器端填充 sockaddr_in结构 */	bzero(&server_addr,sizeof(struct sockaddr_in)); 	server_addr.sin_family=AF_INET; 	server_addr.sin_addr.s_addr=htonl(INADDR_ANY); 	server_addr.sin_port=htons(UDP_PORT); 	/*绑定套接字*/	if(bind(sockfd,(struct sockaddr *)&server_addr,sizeof(struct sockaddr))<0) { 		printf("Bind Error:%s\n",strerror(errno)); 		return NULL;		}	addrlen=sizeof(struct sockaddr);	n=recvfrom(sockfd,getmsg,sizeof(nettype),0,(struct sockaddr *)&client_addr,&addrlen); 	//printf("Got packet from %s\n The Num. of packet is:%d\n",inet_ntoa(client_addr.sin_addr),n);	close(sockfd);	return getmsg;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -