📄 udp_recv_netparam.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 + -