commit bd21b73457c3885befdc26b1cff7437be3761c04 Author: TangChao <735056338@qq.com> Date: Sun Aug 28 10:17:44 2022 +0000 first commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b610100 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +# tc diff --git a/udpClient.c b/udpClient.c new file mode 100755 index 0000000..786c0e9 --- /dev/null +++ b/udpClient.c @@ -0,0 +1,75 @@ +//https://blog.csdn.net/xiongping_/article/details/47722049 + +#include +#include +#include +#include +#include +#include +#include +#include + +#define PORT 45454 +#define MAXDATASIZE 100 + +int main(int argc, char *argv[]) +{ + int sockfd, num; + char buf[MAXDATASIZE]; + + struct hostent *he; + struct sockaddr_in server,peer; + + if (argc !=3) + { + printf("Usage: %s \n",argv[0]); + exit(1); + } + + if ((he=gethostbyname(argv[1]))==NULL) + { + printf("gethostbyname()error\n"); + exit(1); + } + + // if ((he=gethostbyname("127.0.0.1"))==NULL) + // { + // printf("gethostbyname()error\n"); + // exit(1); + // } + + if ((sockfd=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(sockfd, argv[2],strlen(argv[2]),0,(struct sockaddr *)&server,sizeof(server)); + + socklen_t addrlen; + addrlen=sizeof(server); + while (1) + { + if((num=recvfrom(sockfd,buf,MAXDATASIZE,0,(struct sockaddr *)&peer,&addrlen))== -1) + { + printf("recvfrom() error\n"); + exit(1); + } + if (addrlen != sizeof(server) ||memcmp((const void *)&server, (const void *)&peer,addrlen) != 0) + { + printf("Receive message from otherserver.\n"); + continue; + } + + buf[num]='\0'; + printf("Server Message:%s\n",buf); + break; + } + + close(sockfd); +}