0% found this document useful (0 votes)
39 views

UDP Server Client Application Reverse A String

Uploaded by

Jaya Prakash
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views

UDP Server Client Application Reverse A String

Uploaded by

Jaya Prakash
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

26.

Design UDP Client and server application to reverse


the given input sentence

UDP Server Code


#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <unistd.h>

#include <arpa/inet.h>

#include <netinet/in.h>

#define SERV_PORT 9877

#define MAXLINE 4096

void reverse_string(char *str) {

int n = strlen(str);
for (int i = 0; i < n / 2; i++) {

char temp = str[i];

str[i] = str[n - i - 1];

str[n - i - 1] = temp;

int main() {

int sockfd;

char buf[MAXLINE];
struct sockaddr_in servaddr, cliaddr;

socklen_t len;

ssize_t n;

sockfd = socket(AF_INET, SOCK_DGRAM, 0);

bzero(&servaddr, sizeof(servaddr));

servaddr.sin_family = AF_INET;

servaddr.sin_addr.s_addr = htonl(INADDR_ANY);

servaddr.sin_port = htons(SERV_PORT);

bind(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr));

for (;;) {

len = sizeof(cliaddr);

n = recvfrom(sockfd, buf, MAXLINE, 0, (struct sockaddr *) &cliaddr, &len);

buf[n] = '\0';

reverse_string(buf);

sendto(sockfd, buf, n, 0, (struct sockaddr *) &cliaddr, len);

return 0;

}
UDP Client Code
#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <unistd.h>

#include <arpa/inet.h>

#include <netinet/in.h>

#define SERV_PORT 9877

#define MAXLINE 4096

int main(int argc, char **argv) {

int sockfd;

char sendline[MAXLINE], recvline[MAXLINE + 1];

struct sockaddr_in servaddr;

socklen_t servlen = sizeof(servaddr);


ssize_t n;

if (argc != 2) {

fprintf(stderr, "usage: %s <IPaddress>\n", argv[0]);

exit(1);

sockfd = socket(AF_INET, SOCK_DGRAM, 0);

bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;

servaddr.sin_port = htons(SERV_PORT);

inet_pton(AF_INET, argv[1], &servaddr.sin_addr);

while (fgets(sendline, MAXLINE, stdin) != NULL) {

sendto(sockfd, sendline, strlen(sendline), 0, (struct sockaddr *) &servaddr, servlen);

n = recvfrom(sockfd, recvline, MAXLINE, 0, NULL, NULL);

recvline[n] = '\0';

fputs(recvline, stdout);

close(sockfd);

return 0;

Output:

How to execute it???

1. Compile and run the server code in one terminal.


2. Open another terminal and compile and run the code
3. Enter any string in the client side terminal.
4. THank you.

You might also like