#include #include #include #include #include #include #include #define MAXLINE 4096 /*max text line length*/ #define SERV_PORT 3000 /*port*/ #define LISTENQ 8 /*maximum number of client connections */ int main (int argc, char **argv) { int listenfd, n; socklen_t len; char buf[MAXLINE]; struct sockaddr_in cliaddr, servaddr; //creation of the socket listenfd = socket (AF_INET, SOCK_DGRAM, 0); //preparation of the socket address servaddr.sin_family = AF_INET; servaddr.sin_addr.s_addr = htonl(INADDR_ANY); servaddr.sin_port = htons(SERV_PORT); bind(listenfd, (struct sockaddr *) &servaddr, sizeof(servaddr)); for ( ; ; ) { len = sizeof(cliaddr); n = recvfrom(listenfd, buf, MAXLINE,0, ( struct sockaddr *)&cliaddr,&len); if (n < 0) { perror("Read error"); exit(1); } buf[n] = '\0'; printf("%s","String received from and resent to the client: "); fputs(buf, stdout); sendto(listenfd, buf, n, 0, ( struct sockaddr *)&cliaddr, sizeof(cliaddr)); } close(listenfd); }