📄 udp_client.c
字号:
#include <stdio.h>#include <unistd.h>#include <string.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <netdb.h>#define PORT 1234#define MAXDATASIZE 100int main(int argc, char **argv){ int fd,numbytes; char buf[MAXDATASIZE]; struct hostent *he; struct sockaddr_in server,reply; if(argc != 3) { printf("Usage: %s <IP Address><message>\n",argv[0]); exit(1); } if((he = gethostbyname(argv[1])) == NULL) { printf("gethostbyname error.\n"); exit(1); } if((fd = socket(AF_INET,SOCK_DGRAM,0)) == -1) { printf("socket error.\n"); exit(1); } bzero(&server,sizeof(server)); server.sin_family = AF_INET; server.sin_port = htons(PORT); server.sin_addr = *((struct in_addr *)he->h_addr); sendto(fd,argv[2],strlen(argv[2]),0,(struct sockaddr *)&server,sizeof(struct sockaddr)); while(1) { int len; if((numbytes = recvfrom(fd,buf,MAXDATASIZE,0,(struct sockaddr *)&reply,&len)) == -1) { printf("recvfrom error.\n"); exit(1); } if(len != sizeof(struct sockaddr) || memcmp((const void *)&server,(const void *)&reply,len) != 0) { printf("receive message from oth sever.\n"); continue; } buf[numbytes]='\0'; printf("server message: %s\n",buf); break; } close(fd);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -