Part A-4

 

// C client code to send string to reverse

//p4client.c

#include <arpa/inet.h>

#include <netinet/in.h>

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <sys/socket.h>

#include <unistd.h>

  

#define PORT 8090

  

// Driver code

int main()

{

    struct sockaddr_in address;

    int sock = 0, valread;

    struct sockaddr_in serv_addr;

    char str[100];

  

    printf("\nInput the string:");

    scanf("%[^\n]s", str);

  

    char buffer[1024] = { 0 };

  

    // Creating socket file descriptor

    if ((sock = socket(AF_INET,

                       SOCK_STREAM, 0))

        < 0) {

        printf("\n Socket creation error \n");

        return -1;

    }

  

    memset(&serv_addr, '0', sizeof(serv_addr));

    serv_addr.sin_family = AF_INET;

    serv_addr.sin_port = htons(PORT);

  

    // Convert IPv4 and IPv6 addresses from

    // text to binary form 127.0.0.1 is local

    // host IP address, this address should be

    // your system local host IP address

    if (inet_pton(AF_INET, "127.0.0.1",

                  &serv_addr.sin_addr)

        <= 0) {

        printf("\nAddress not supported \n");

        return -1;

    }

  

    // connect the socket

    if (connect(sock, (struct sockaddr*)&serv_addr,

                sizeof(serv_addr))

        < 0) {

        printf("\nConnection Failed \n");

        return -1;

    }

  

    int l = strlen(str);

  

    // send string to server side

    send(sock, str, sizeof(str), 0);

  

    // read string sent by server

    valread = read(sock, str, l);

  

    printf("%s\n", str);

  

    return 0;

}

 

//p4aserver.c

// Server C code to reverse a

// string by sent from client

#include <netinet/in.h>

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <sys/socket.h>

#include <unistd.h>

  

#define PORT 8090

  

// Driver code

int main()

{

    int server_fd, new_socket, valread;

    struct sockaddr_in address;

    char str[100];

    int addrlen = sizeof(address);

    char buffer[1024] = { 0 };

    char* hello = "Hello from server";

  

    // Creating socket file descriptor

    if ((server_fd = socket(AF_INET, 

                          SOCK_STREAM, 0)) == 0) {

        perror("socket failed");

        exit(EXIT_FAILURE);

    }

  

    address.sin_family = AF_INET;

    address.sin_addr.s_addr = INADDR_ANY;

    address.sin_port = htons(PORT);

  

    // Forcefully attaching socket to

    // the port 8090

    if (bind(server_fd, (struct sockaddr*)&address, 

                          sizeof(address)) < 0) {

        perror("bind failed");

        exit(EXIT_FAILURE);

    }

  

    // puts the server socket in passive mode

    if (listen(server_fd, 3) < 0) {

        perror("listen");

        exit(EXIT_FAILURE);

    }

    if ((new_socket = accept(server_fd,

                  (struct sockaddr*)&address,

                  (socklen_t*)&addrlen)) < 0) {

        perror("accept");

        exit(EXIT_FAILURE);

    }

  

    // read string send by client

    valread = read(new_socket, str,

                   sizeof(str));

    int i, j, temp;

    int l = strlen(str);

  

    printf("\nString sent by client:%s\n", str);

  

    // loop to reverse the string

    for (i = 0, j = l - 1; i < j; i++, j--) {

        temp = str[i];

        str[i] = str[j];

        str[j] = temp;

    }

  

    // send reversed string to client

    // by send system call

    send(new_socket, str, sizeof(str), 0);

    printf("\nModified string sent to client\n");

  

    return 0;

}

 

 

 

Comments

Popular posts from this blog

ಅರಗಿನರಮನೆ

Part B-1