#include<stdio.h>#include<string.h>#include<stdlib.h>#include<unistd.h>#include<arpa/inet.h>#include<sys/types.h>#include<netinet/in.h>#include<ctype.h>intmain(){//1.build socketint cfd =socket(AF_INET, SOCK_DGRAM,0);//2.bind the pashstructsockaddr_in serv;
serv.sin_family = AF_INET;
serv.sin_port =htons(8888);
serv.sin_addr.s_addr =htonl(INADDR_ANY);bind(cfd,(structsockaddr*)&serv,sizeof(serv));//3.receive and send dataint i;int n;char buf[1024];structsockaddr_in client;socklen_t len;while(1){memset(buf,0x00,sizeof(buf));
len =sizeof(client);int n =recvfrom(cfd, buf,sizeof(buf),0,(structsockaddr*)&client,&len);for(i =0; i < n; i++){
buf[i]=toupper(buf[i]);}printf("%d,n==%d,buf==%s\n",ntohs(client.sin_port), n, buf);sendto(cfd, buf, n,0,(structsockaddr*)&client, len);}close(cfd);return0;}
the code of udp client
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<unistd.h>#include<arpa/inet.h>#include<netinet/in.h>#include<sys/types.h>#include<ctype.h>intmain(){//1.build cfdint cfd =socket(AF_INET, SOCK_DGRAM,0);//2.bind the portstructsockaddr_in serv;
serv.sin_family = AF_INET;
serv.sin_port =htons(8888);inet_pton(AF_INET,"127.0.0.1",&serv.sin_addr.s_addr);//3.send and receive the dataint i;int n;char buf[1024];while(1){memset(buf,0x00,sizeof(buf));
n =read(STDIN_FILENO, buf,sizeof(buf));sendto(cfd, buf, n,0,(structsockaddr*)&serv,sizeof(serv));memset(buf,0x00,sizeof(buf));
n =recvfrom(cfd, buf,sizeof(buf),0,NULL,NULL);printf("n==%d,buf==%s\n", n, buf);}close(cfd);return0;}printf("n==%d,buf==%s\n", n, buf);}close(cfd);return0;}