+ All Categories
Home > Documents > Lab Manual - Tcpip - It0405

Lab Manual - Tcpip - It0405

Date post: 04-Jun-2018
Category:
Upload: saurabhkher19
View: 231 times
Download: 0 times
Share this document with a friend

of 45

Transcript
  • 8/13/2019 Lab Manual - Tcpip - It0405

    1/45

  • 8/13/2019 Lab Manual - Tcpip - It0405

    2/45

  • 8/13/2019 Lab Manual - Tcpip - It0405

    3/45

  • 8/13/2019 Lab Manual - Tcpip - It0405

    4/45

  • 8/13/2019 Lab Manual - Tcpip - It0405

    5/45

  • 8/13/2019 Lab Manual - Tcpip - It0405

    6/45

  • 8/13/2019 Lab Manual - Tcpip - It0405

    7/45

  • 8/13/2019 Lab Manual - Tcpip - It0405

    8/45

  • 8/13/2019 Lab Manual - Tcpip - It0405

    9/45

    ssize_t recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t* from len);ssize_t recvmsg(int s, struct msghdr *msg, int flags);

    DESCRIPTION:

    The recvfrom and recvmsg calls are used to receive messages from a socket, and may beused to recv data on a socket whether or not it is connection oriented. If from is not NULL, and the underlying protocol provides the src addr , this src addr isfilled in.

    The recv call is normally used only on a connection socket and is identical to recvfromwith a NULL from parameter.

    6.man read

    NAME:

    read, readonly, return

    7.man write

    NAME:

    write- send a message to another user.

    SYNOPSIS:

    write user[ttyname]

    DESCRIPTION:

    write allows you to communicate with other users, by copying lines from terminal to

    When you run the write and the user you are writing to get a message of the form:Message from yourname @yourhost on yourtty at hh:mm:

    Any further lines you enter will be copied to the specified users terminal. If the other user wants to reply they must run write as well.

    8. ifconfig

    NAME:

    ifconfig- configure a network interface.

    SYNOPSIS:

    ifconfig[interface]

    Page | 9

  • 8/13/2019 Lab Manual - Tcpip - It0405

    10/45

    ifconfig interface[aftype] options | address

    DESCRIPTION:

    ifconfig is used to configure the kernel resident network interfaces. It is used at boot time to setup interfaces as necessary. After that, it is usually only needed when debugging or when system tuning is needed. If no arguments are given, ifconfig displays the status of the currently active interfaces.

    9. man bind

    SYNOPSIS:

    bind[-m keymap] [-lp sv psv]

    10. man htons/ man htonl

    NAME:

    htonl, htons, ntohl, ntohs - convert values between host and network byte order.

    SYNOPSIS:

    #includeuint32_t htonl(uint32_t hostlong);uint16_t htons(uint32_t hostshort);uint32_t ntohl(uint32_t netlong);uint16_t ntohs(uint16_t netshort);

    DESCRIPTION:

    The htonl() function converts the unsigned integer hostlong from host byte order tonetwork byte order.

    The htons() converts the unsigned short integer hostshort from host byte order to network byte order.

    The ntohl() converts the unsigned integer netlong from network byte order to host byteorder.

    11. man gethostname

    NAME:

    gethostname, sethostname- get/set host name.

    SYNOPSIS:

    #includeint gethostname(char *name,size_t len);int sethostname(const char *name,size_t len);

    DESCRIPTION:

    Page | 10

  • 8/13/2019 Lab Manual - Tcpip - It0405

    11/45

  • 8/13/2019 Lab Manual - Tcpip - It0405

    12/45

    Ex No: 3Date:

    SIMPLE TCP/IP CLIENT SERVER COMMUNICATION

    GIVEN REQUIREMENTS:

    There are two hosts, Client and Server. The Client accepts the message from the user andsends it to the Server. The Server receives the message and prints it.

    TECHNICAL OBJECTIVE:

    To implement a simple TCP Client-Server application , where the Client on establishing aconnection with the Server, sends a string to the Server. The Server reads the String and prints it.

    METHODOLOGY:

    Server: Include the necessary header files. Create a socket using socket function with family AF_INET, type as SOCK_STREAM. Initialize server address to 0 using the bzero function. Assign the sin_family to AF_INET, sin_addr to INADDR_ANY, sin_port to a dynamically

    assigned port number. Bind the local host address to socket using the bind function. Listen on the socket for connection request from the client. Accept connection request from the client using accept function. Within an infinite loop, using the recv function receive message from the client and print it

    on the console.

    Client: Include the necessary header files. Create a socket using socket function with family AF_INET, type as SOCK_STREAM. Initialize server address to 0 using the bzero function. Assign the sin_family to AF_INET. Get the server IP address and port number from the console. Using gethostbyname function assign it to a hostent structure, and assign it to sin_addr of

    the server address structure. Request a connection from the server using the connect function. Within an infinite loop, read message from the console and send the message to the server

    using the send function.CODING:Server: tcpserver.c#include#include#include#include#include#include

    Page | 12

  • 8/13/2019 Lab Manual - Tcpip - It0405

    13/45

    int main(int asrgc,char*argv[]){

    int bd,sd,ad;char buff[1024];struct sockaddr_in cliaddr,servaddr;socklen_t clilen;clilen=sizeof(cliaddr); bzero(&servaddr,sizeof(servaddr));

    /*Socket address structure*/servaddr.sin_family=AF_INET;servaddr.sin_addr.s_addr=htonl(INADDR_ANY);servaddr.sin_port=htons(1999);

    /*TCP socket is created, an Internet socket address structure is filled with wildcard address& servers well known port*/sd=socket(AF_INET,SOCK_STREAM,0);

    /*Bind function assigns a local protocol address to the socket*/ bd=bind(sd,(struct sockaddr*)&servaddr,sizeof(servaddr));

    /*Listen function specifies the maximum number of connections that kernel should queuefor this socket*/listen(sd,5); printf("Server is running.\n");

    /*The server to return the next completed connection from the front of thecompleted connection Queue calls it*/ad=accept(sd,(struct sockaddr*)&cliaddr,&clilen);while(1)

    { bzero(&buff,sizeof(buff));

    /*Receiving the request message from the client*/recv(ad,buff,sizeof(buff),0); printf("Message received is %s\n",buff);

    }}Client: tcpclient.c#include#include#include#include

    #include#include#include#includeint main(int argc,char * argv[]){

    int cd,sd,ad;char buff[1024];struct sockaddr_in cliaddr,servaddr;

    Page | 13

  • 8/13/2019 Lab Manual - Tcpip - It0405

    14/45

    struct hostent *h; /*This function looks up a hostname and it returns a pointer to a hostent

    structure that contains all the IPV4 address*/h=gethostbyname(argv[1]); bzero(&servaddr,sizeof(servaddr));

    /*Socket address structure*/ servaddr.sin_family=AF_INET;memcpy((char *)&servaddr.sin_addr.s_addr,h->h_addr_list[0],h->h_length);servaddr.sin_port = htons(1999);

    /*Creating a socket, assigning IP address and port number for that socket*/sd = socket(AF_INET,SOCK_STREAM,0);

    /*Connect establishes connection with the server using server IP address*/cd=connect(sd,(struct sockaddr*)&servaddr,sizeof(servaddr));while(1){

    printf("Enter the message: \n");

    /*Reads the message from standard input*/fgets(buff,100,stdin);

    /*Send function is used on client side to send data given by user on clientside to the server*/send(sd,buff,sizeof(buff)+1,0); printf("\n Data Sent ");//recv(sd,buff,strlen(buff)+1,0); printf("%s",buff);}

    }SAMPLE OUTPUT:

    Server :(Host Name:Root1)

    [root@localhost 4ita33]# vi tcpserver.c[root@localhost 4ita33]# cc tcpserver.c[root@localhost 4ita33]# ./a.outServer is running.Message received is hi

    Message received is hi

    Client:(Host Name:Root2)

    [root@localhost 4ita33]# vi tcpclient.c[root@localhost 4ita33]# cc tcpclient.c[root@localhost 4ita33]# ./a.out 127.0.0.1Enter the message:

    Page | 14

  • 8/13/2019 Lab Manual - Tcpip - It0405

    15/45

    hi

    Data Sent hiEnter the message:how r u

    Data Sent how r uEnter the message:

    INFERENCE:

    Thus, a program to perform simple communication between client and server using TCP/IP wasimplemented.

    Page | 15

  • 8/13/2019 Lab Manual - Tcpip - It0405

    16/45

    Ex No: 4Date:

    UDP ECHO CLIENT SERVER COMMUNICATION

    GIVEN REQUIREMENTS:

    There are two hosts, Client and Server. The Client accepts the message from the user andsends it to the Server. The Server receives the message, prints it and echoes the message back to theClient.

    TECHNICAL OBJECTIVE:

    To implement an UDP Echo Client-Server application , where the Client on establishing aconnection with the Server, sends a string to the Server. The Server reads the String, prints it and echoesit back to the Client.

    METHODOLOGY:

    Server: Include the necessary header files. Create a socket using socket function with family AF_INET, type as SOCK_DGRAM. Initialize server address to 0 using the bzero function. Assign the sin_family to AF_INET, sin_addr to INADDR_ANY, sin_port to

    SERVER_PORT, a macro defined port number. Bind the local host address to socket using the bind function. Within an infinite loop, receive message from the client using recvfrom function, print it

    on the console and send (echo) the message back to the client using sendto function.Client:

    Include the necessary header files. Create a socket using socket function with family AF_INET, type as SOCK_DGRAM. Initialize server address to 0 using the bzero function. Assign the sin_family to AF_INET. Get the server IP address from the console. Using gethostbyname function assign it to a hostent structure, and assign it to sin_addr of

    the server address structure. Within an infinite loop, read message from the console and send the message to the server

    using the sendto function. Receive the echo message using the recvfrom function and print it on the console.

    CODING:Server: udpserver.c

    #include#include#include#include#include#include

    Page | 16

  • 8/13/2019 Lab Manual - Tcpip - It0405

    17/45

    #include#includeint main(int argc,char *argv[]){

    int sd;char buff[1024];struct sockaddr_in cliaddr,servaddr;socklen_t clilen;clilen=sizeof(cliaddr);

    /*UDP socket is created, an Internet socket address structure is filled with wildcardaddress & servers well known port*/sd=socket(AF_INET,SOCK_DGRAM,0);if (sd

  • 8/13/2019 Lab Manual - Tcpip - It0405

    18/45

    perror("Cannot send data to client");exit(1);

    } printf("Send data to UDP Client: %s",buff);

    }close(sd);return 0;

    }

    Client: udpclient.c

    #include#include#include#include#include#include#includeint main(int argc,char*argv[]){

    int sd;char buff[1024];struct sockaddr_in servaddr;socklen_t len;len=sizeof(servaddr);

    /*UDP socket is created, an Internet socket address structure is filled withwildcard address & servers well known port*/

    sd = socket(AF_INET,SOCK_DGRAM,0);if(sd

  • 8/13/2019 Lab Manual - Tcpip - It0405

    19/45

    { perror("Cannot send data");exit(1);

    } printf("Data sent to UDP Server:%s",buff); bzero(buff,sizeof(buff));

    /*Receiving the echoed message from server*/ if(recvfrom (sd,buff,sizeof(buff),0,(struct sockaddr*)&servaddr,&len)

  • 8/13/2019 Lab Manual - Tcpip - It0405

    20/45

    Enter input data :how are uData sent to UDP Server:how are uReceived Data from server: how are u

    Enter input data :

    INFERENCE:

    Thus, the UDP ECHO client server communication is established by sending the message from theclient to the server and server prints it and echoes the message back to the client.

    Page | 20

  • 8/13/2019 Lab Manual - Tcpip - It0405

    21/45

    Ex No:5Date:

    CONCURRENT TCP/IP DAY-TIME SERVER

    GIVEN REQUIREMENTS:

    There are two hosts, Client and Server. The Client requests the concurrent server for thedate and time. The Server sends the date and time, which the Client accepts and prints.

    TECHNICAL OBJECTIVE :

    To implement a TCP/IP day time server (concurrent server) that handles multiple clientrequests. Once the client establishes connection with the server, the server sends its day-time details to theclient which the client prints in its console.

    METHODOLOGY:

    Server: Include the necessary header files. Create a socket using socket function with family AF_INET, type as SOCK_STREAM. Initialize server address to 0 using the bzero function. Assign the sin_family to AF_INET, sin_addr to INADDR_ANY, sin_port to statically

    assigned port number. Bind the local host address to socket using the bind function. Within a for loop, accept connection request from the client using accept function. Use the fork system call to spawn the processes. Calculate the current date and time using the ctime() function. Change the format so that it

    is appropriate for human readable form and send the date and time to the client using the

    write function.Client: Include the necessary header files. Create a socket using socket function with family AF_INET, type as SOCK_STREAM. Initialize server address to 0 using the bzero function. Assign the sin_family to AF_INET. Get the server IP address from the console. Using gethostbyname function assign it to a hostent structure, and assign it to sin_addr of

    the server address structure. Request a connection from the server using the connect function. Within an infinite loop, receive the date and time from the server using the read function

    and print the date and time on the console.

    CODING:Server: dtserver.c

    #include#include#include#include#include

    Page | 21

  • 8/13/2019 Lab Manual - Tcpip - It0405

    22/45

    #include#include#include0int main(int argc,char *argv[]){

    int sd,ad;char buff[1024];struct sockaddr_in servaddr,cliaddr;//socklen_t clilen=sizeof(cliaddr);time_t t1; bzero(&servaddr,sizeof(servaddr));

    /*Socket address structure*/servaddr.sin_family=AF_INET; servaddr.sin_addr.s_addr=htonl(INADDR_ANY);servaddr.sin_port=htons(1507); /*TCP socket is created, an Internet socket address structure is filled with

    wildcard address & servers well known port*/sd=socket(AF_INET,SOCK_STREAM,0);

    /*Bind function assigns a local protocol address to the socket*/ bind(sd,(struct sockaddr*)&servaddr,sizeof(servaddr));

    /*Listen function specifies the maximum number of connections that kernel should queuefor this socket*/

    listen(sd,5); printf("Server is running\n");

    /*The server to return the next completed connection from the front of the

    completed connection Queue calls it*/ad=accept(sd,(struct sockaddr *)NULL,NULL);while(1){

    bzero(&buff,sizeof(buff));

    /*Library function time returns the Coordinated Universal Time*/t1=time(NULL);

    /*Prints the converted string format*/snprintf(buff,sizeof(buff),"%24s\r\n",ctime(&t1));

    send(ad,buff,sizeof(buff),0);}

    Client: dtclient.c

    #include

    Page | 22

  • 8/13/2019 Lab Manual - Tcpip - It0405

    23/45

    #include#include#include#include#include#includeint main(int argc,char *argv[]){

    int sd,ad;char buff[1024];struct sockaddr_in cliaddr,servaddr;struct hostent *h;h=gethostbyname(argv[1]); bzero(&servaddr,sizeof(servaddr));

    /*Socket address structure*/servaddr.sin_family=AF_INET;memcpy((char*)&servaddr.sin_addr.s_addr,h->h_addr_list[0],h->h_length);servaddr.sin_port=htons(1507);

    /*TCP socket is created, an Internet socket address structure is filled withwildcard address & servers well known port*/sd=socket(AF_INET,SOCK_STREAM,0);

    /*Connect establishes connection with the server using server IP address*/connect(sd,(struct sockaddr*)&servaddr,sizeof(servaddr)); recv(sd,buff,sizeof(buff),0); printf("Day time of server is: %s\n",buff);

    }

    SAMPLE OUTPUT:

    Server :(Host Name:Root1)

    [root@localhost 4ita33]# vi dtserver.c[root@localhost 4ita33]# cc dtserver.c[root@localhost 4ita33]# ./a.out

    Server is running

    Client:(Host Name:Root2)

    [root@localhost 4ita33]# vi dtclient.c

    Page | 23

  • 8/13/2019 Lab Manual - Tcpip - It0405

    24/45

    [root@localhost 4ita33]# cc dtclient.c[root@localhost 4ita33]# ./a.out 127.0.0.1

    Day time of server is: Sat Oct 27 18:02:21 2007

    INFERENCE:

    Thus the concurrent daytime client- server communication is established by sending the requestmessage from the client to the concurrent server and the server sends its time to all the clients anddisplays it.

    Page | 24

  • 8/13/2019 Lab Manual - Tcpip - It0405

    25/45

    Ex No:6Date:

    HALF DUPLEX CHAT USING TCP/IP

    GIVEN REQUIREMENTS:There are two hosts, Client and Server. Both the Client and the Server exchange message

    i.e. they send messages or receive message from the other. There is only a single way communication between them.

    TECHNICAL OBJECTIVE:To implement a half duplex application, where the Client establishes a connection with the

    Server. The Client can send and the server well receive messages at the same time.

    METHODOLOGY:Server:

    Include the necessary header files. Create a socket using socket function with family AF_INET, type as SOCK_STREAM. Initialize server address to 0 using the bzero function. Assign the sin_family to AF_INET, sin_addr to INADDR_ANY, sin_port to dynamically

    assigned port number. Bind the local host address to socket using the bind function. Listen on the socket for connection request from the client. Accept connection request from the Client using accept function. Fork the process to receive message from the client and print it on the console. Read message from the console and send it to the client.

    Client: Include the necessary header files. Create a socket using socket function with family AF_INET, type as SOCK_STREAM. Initialize server address to 0 using the bzero function. Assign the sin_family to AF_INET. Get the server IP address and the Port number from the console. Using gethostbyname function assign it to a hostent structure, and assign it to sin_addr of

    the server address structure. Request a connection from the server using the connect function. Fork the process to receive message from the server and print it on the console. Read message from the console and send it to the server.

    CODING:Server: hserver.c

    #include#include#include#include#include#include#include

    Page | 25

  • 8/13/2019 Lab Manual - Tcpip - It0405

    26/45

    int main(int argc,char *argv[]){int n,sd,ad;struct sockaddr_in servaddr,cliaddr;socklen_t clilen,servlen;char buff[10000],buff1[10000]; bzero(&servaddr,sizeof(servaddr));

    /*Socket address structure*/servaddr.sin_family=AF_INET;servaddr.sin_addr.s_addr=htonl(INADDR_ANY);servaddr.sin_port=htons(5000);

    /*TCP socket is created, an Internet socket address structure is filled withwildcard address & servers well known port*/sd=socket(AF_INET,SOCK_STREAM,0);

    /*Bind function assigns a local protocol address to the socket*/

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

    /*Listen function specifies the maximum number of connections that kernelshould queue for this socket*/listen(sd,5); printf("%s\n","server is running");

    /*The server to return the next completed connection from the front of thecompleted connection Queue calls it*/ad=accept(sd,(struct sockaddr*)&cliaddr,&clilen);while(1){

    bzero(&buff,sizeof(buff));

    /*Receiving the request from client*/recv(ad,buff,sizeof(buff),0);

    printf("Receive from the client:%s\n",buff);n=1;while(n==1){

    bzero(&buff1,sizeof(buff1)); printf("%s\n","Enter the input data:");

    /*Read the message from client*/fgets(buff1,10000,stdin);

    /*Sends the message to client*/send(ad,buff1,strlen(buff1)+1,0); printf("%s\n","Data sent");n=n+1;

    }}

    Page | 26

  • 8/13/2019 Lab Manual - Tcpip - It0405

    27/45

    return 0;}

    Client: hclient.c

    #include#include#include#include#include#include#includeint main(int argc,char *argv[]){

    int n,sd,cd;struct sockaddr_in servaddr,cliaddr;socklen_t servlen,clilen;char buff[10000],buff1[10000]; bzero(&servaddr,sizeof(servaddr));

    /*Socket address structure*/servaddr.sin_family=AF_INET;servaddr.sin_addr.s_addr=inet_addr(argv[1]);servaddr.sin_port=htons(5000);

    /*Creating a socket, assigning IP address and port number for that socket*/ sd=socket(AF_INET,SOCK_STREAM,0);

    /*Connect establishes connection with the server using server IP address*/cd=connect(sd,(struct sockaddr*)&servaddr,sizeof(servaddr));while(1){

    bzero(&buff,sizeof(buff)); printf("%s\n","Enter the input data:");

    /*This function is used to read from server*/fgets(buff,10000,stdin);

    /*Send the message to server*/send(sd,buff,strlen(buff)+1,0); printf("%s\n","Data sent");n=1;while(n==1){

    bzero(&buff1,sizeof(buff1));

    Page | 27

  • 8/13/2019 Lab Manual - Tcpip - It0405

    28/45

    /*Receive the message from server*/recv(sd,buff1,sizeof(buff1),0); printf("Received from the server:%s\n",buff1);n=n+1;

    }}return 0;

    }

    SAMPLE OUTPUT:

    Server :(Host Name:Root1)

    [root@localhost 4ita33]# vi hserver.c[root@localhost 4ita33]# cc hserver.c[root@localhost 4ita33]# ./a.out

    Server is runningReceive from the client:hi

    Enter the input data:

    Page | 28

  • 8/13/2019 Lab Manual - Tcpip - It0405

    29/45

    how are u da ..Data sent

    Receive from the client:me fine da ...

    Enter the input data:

    Client:(Host Name:Root2)

    [root@localhost 4ita33]# vi hclient.c[root@localhost 4ita33]# cc hclient.c[root@localhost 4ita33]# ./a.out 127.0.0.1Enter the input data:hiData sent:Received from the server:how are u da ..

    Enter the input data:me fine da ...Data sent

    INFERENCE:

    Thus the chat application full duplex communication is established by sending the request fromthe client to the server, server gets the message and gives response to the client and prints it.

    Page | 29

  • 8/13/2019 Lab Manual - Tcpip - It0405

    30/45

    Ex No:7Date:

    FULL DUPLEX CHAT USING TCP/IP

    GIVEN REQUIREMENTS:There are two hosts, Client and Server. Both the Client and the Server exchange message

    i.e. they send messages to and receive message from the other. There is a two way communication between them.

    TECHNICAL OBJECTIVE:To implement a full duplex application, where the Client establishes a connection with the

    Server. The Client and Server can send as well as receive messages at the same time. Both the Client andServer exchange messages.

    METHODOLOGY:Server:

    Include the necessary header files. Create a socket using socket function with family AF_INET, type as SOCK_STREAM. Initialize server address to 0 using the bzero function. Assign the sin_family to AF_INET, sin_addr to INADDR_ANY, sin_port to dynamically

    assigned port number. Bind the local host address to socket using the bind function. Listen on the socket for connection request from the client. Accept connection request from the Client using accept function. Fork the process to receive message from the client and print it on the console. Read message from the console and send it to the client.

    Client: Include the necessary header files. Create a socket using socket function with family AF_INET, type as SOCK_STREAM. Initialize server address to 0 using the bzero function. Assign the sin_family to AF_INET. Get the server IP address and the Port number from the console. Using gethostbyname function assign it to a hostent structure, and assign it to sin_addr of

    the server address structure. Request a connection from the server using the connect function. Fork the process to receive message from the server and print it on the console. Read message from the console and send it to the server.

    CODING:Server: fserver.c

    #include#include#include#include#include#include

    Page | 30

  • 8/13/2019 Lab Manual - Tcpip - It0405

    31/45

    #includeint main(int argc,char *argv[]){

    int ad,sd;struct sockaddr_in servaddr,cliaddr;socklen_t servlen,clilen;char buff[1000],buff1[1000]; pid_t cpid; bzero(&servaddr,sizeof(servaddr));

    /*Socket address structure*/servaddr.sin_family=AF_INET;servaddr.sin_addr.s_addr=htonl(INADDR_ANY);servaddr.sin_port=htons(5500);

    /*TCP socket is created, an Internet socket address structure is filled withwildcard address & servers well known port*/sd=socket(AF_INET,SOCK_STREAM,0);

    /*Bind function assigns a local protocol address to the socket*/ bind(sd,(struct sockaddr*)&servaddr,sizeof(servaddr));

    /*Listen function specifies the maximum number of connections that kernel should queuefor this socket*/

    listen(sd,5); printf("%s\n","Server is running.......");

    /*The server to return the next completed connection from the front of thecompleted connection Queue calls it*/ad=accept(sd,(struct sockaddr*)&cliaddr,&clilen);

    /*Fork system call is used to create a new process*/cpid=fork();

    if(cpid==0){

    while(1){

    bzero(&buff,sizeof(buff));

    /*Receiving the request from client*/recv(ad,buff,sizeof(buff),0); printf("Received message from the client:%s\n",buff);

    }}

    else{

    while(1){

    Page | 31

  • 8/13/2019 Lab Manual - Tcpip - It0405

    32/45

    bzero(&buff1,sizeof(buff1)); printf("%s\n","Enter the input data:");

    /*Read the message from client*/fgets(buff1,10000,stdin);

    /*Sends the message to client*/ send(ad,buff1,strlen(buff1)+1,0); printf("%s\n","Data sent");

    }}return 0;

    }

    Client: fclient.c

    #include#include#include#include#include#include#includeint main(int argc,char *argv[]){

    int sd,cd;struct sockaddr_in servaddr,cliaddr;

    socklen_t servlen,clilen;char buff[1000],buff1[1000]; pid_t cpid; bzero(&servaddr,sizeof(servaddr));servaddr.sin_family=AF_INET;servaddr.sin_addr.s_addr=inet_addr(argv[1]);servaddr.sin_port=htons(5500);

    /*Creating a socket, assigning IP address and port number for that socket*/sd=socket(AF_INET,SOCK_STREAM,0);

    /*Connect establishes connection with the server using server IP address*/

    cd=connect(sd,(struct sockaddr*)&servaddr,sizeof(servaddr)); /*Fork is used to create a new process*/cpid=fork();if(cpid==0){

    while(1){

    bzero(&buff,sizeof(buff));

    Page | 32

  • 8/13/2019 Lab Manual - Tcpip - It0405

    33/45

    printf("%s\n","Enter the input data:");

    /*This function is used to read from server*/fgets(buff,10000,stdin);

    /*Send the message to server*/send(sd,buff,strlen(buff)+1,0); printf("%s\n","Data sent");

    }}

    else{

    while(1){

    bzero(&buff1,sizeof(buff1));

    /*Receive the message from server*/recv(sd,buff1,sizeof(buff1),0); printf("Received message from the server:%s\n",buff1);

    }}return 0;

    }

    SAMPLE OUTPUT:

    Server :(Host Name:Root1)

    [root@localhost 4ita33]# vi fserver.c[root@localhost 4ita33]# cc fserver.c[root@localhost 4ita33]# ./a.out

    Server is running.......Enter the input data:Received message from the client:hihow are uData sent

    Enter the input data:Received message from the client:i am fine

    Page | 33

  • 8/13/2019 Lab Manual - Tcpip - It0405

    34/45

  • 8/13/2019 Lab Manual - Tcpip - It0405

    35/45

    Ex No: 8Date:

    IMPLEMENTATION OF FILE TRANSFER PROTOCOL

    GIVEN REQUIREMENTS:There are two hosts, Client and Server. The Client sends the name of the file it needs from

    the Server and the Server sends the contents of the file to the Client, where it is stored in a file.

    TECHNICAL OBJECTIVE:

    To implement FTP application, where the Client on establishing a connection with theServer sends the name of the file it wishes to access remotely. The Server then sends the contents of thefile to the Client, where it is stored.

    METHODOLOGY:

    Server: Include the necessary header files. Create a socket using socket function with family AF_INET, type as SOCK_STREAM. Initialize server address to 0 using the bzero function. Assign the sin_family to AF_INET, sin_addr to INADDR_ANY, sin_port to dynamically

    assigned port number. Bind the local host address to socket using the bind function. Listen on the socket for connection request from the client. Accept connection request from the Client using accept function. Within an infinite loop, receive the file name from the Client. Open the file, read the file contents to a buffer and send the buffer to the Client.

    Client : Include the necessary header files. Create a socket using socket function with family AF_INET, type as SOCK_STREAM. Initialize server address to 0 using the bzero function. Assign the sin_family to AF_INET. Get the server IP address and the Port number from the console. Using gethostbyname function assign it to a hostent structure, and assign it to sin_addr of

    the server address structure. Within an infinite loop, send the name of the file to be viewed to the Server. Receive the file contents, store it in a file and print it on the console.

    CODING:Server: ftps.c#include#include#include#include#include#include#include#include

    Page | 35

  • 8/13/2019 Lab Manual - Tcpip - It0405

    36/45

    #includeint main(int argc,char *argv[]){int sd,ad,size;struct sockaddr_in servaddr,cliaddr;socklen_t clilen;clilen=sizeof(cliaddr);struct stat x;char buff[100],file[10000];FILE *fp;

    bzero(&servaddr,sizeof(servaddr));servaddr.sin_family=AF_INET;servaddr.sin_addr.s_addr=htonl(INADDR_ANY);servaddr.sin_port=htons(1500);

    sd=socket(AF_INET,SOCK_STREAM,0); bind(sd,(struct sockaddr*)&servaddr,sizeof(servaddr));listen(sd,5); printf("%s\n","Server Is Running....");ad=accept(sd,(struct sockaddr*)&cliaddr,&clilen);while(1){ bzero(buff,sizeof(buff)); bzero(file,sizeof(file));recv(ad,buff,sizeof(buff),0);fp=fopen(buff,"r");stat(buff,&x);size=x.st_size;fread(file,sizeof(file),1,fp);

    send(ad,file,sizeof(file),0);}

    }Client: ftpc.c#include#include#include#include#include#include#include

    int main(int argc,char *argv[]){int sd,cd;struct sockaddr_in servaddr,cliaddr;socklen_t clilen;char buff[100],file[10000];struct hostent *h;

    Page | 36

  • 8/13/2019 Lab Manual - Tcpip - It0405

    37/45

    h=gethostbyname(argv[1]); bzero(&servaddr,sizeof(servaddr));servaddr.sin_family=h->h_addrtype;memcpy((char *)&servaddr.sin_addr.s_addr,h->h_addr_list[0],h->h_length);servaddr.sin_port=htons(1500);

    sd=socket(AF_INET,SOCK_STREAM,0);cd=connect(sd,(struct sockaddr*)&servaddr,sizeof(servaddr));

    while(1){ printf("%s\n","Enter the File Name :");scanf("%s",buff);send(sd,buff,strlen(buff)+1,0); printf("%s\n","File Output :");recv(sd,file,sizeof(file),0); printf("%s",file);}return 0;}

    SAMPLE OUTPUT:

    Server :(Host Name:Root1)

    [root@localhost 4ita33]# vi ftps.c[root@localhost 4ita33]# cc ftps.c[root@localhost 4ita33]# ./a.out

    Server is RunningFILE REACHEDFile output : this is my network lab

    Client:(Host Name:Root2)

    [root@localhost 4ita33]# vi ftpc.c[root@localhost 4ita33]# cc ftpc.c[root@localhost 4ita33]# ./a.outEnter the filename:ita.txt

    Page | 37

  • 8/13/2019 Lab Manual - Tcpip - It0405

    38/45

    Sending the file contentData sent.....

    INFERENCE:

    Thus the FTP client-server communication is established and data is transferred between theclient and server machines.

    Page | 38

  • 8/13/2019 Lab Manual - Tcpip - It0405

    39/45

    Ex No: 9Date:

    REMOTE COMMAND EXECUTION USING UDP

    GIVEN REQUIREMENTS:

    There are two hosts, Client and Server. The Client sends a command to the Server, whichexecutes the command and sends the result back to the Client.

    TECHNICAL OBJECTIVE:

    Remote Command execution is implemented through this program using which Client isable to execute commands at the Server. Here, the Client sends the command to the Server for remoteexecution. The Server executes the command and the send result of the execution back to the Client.

    METHODOLOGY:

    Server : Include the necessary header files. Create a socket using socket function with family AF_INET, type as SOCK_DGRAM. Initialize server address to 0 using the bzero function. Assign the sin_family to AF_INET, sin_addr to INADDR_ANY, sin_port to dynamically

    assigned port number. Bind the local host using the bind() system call. Within an infinite loop, receive the command to be executed from the client. Append text > temp.txt to the command. Execute the command using the system() system call.

    Send the result of execution to the Client using a file buffer.Client:

    Include the necessary header files. Create a socket using socket function with family AF_INET, type as SOCK_DGRAM. Initialize server address to 0 using the bzero function. Assign the sin_family to AF_INET. Get the server IP address and the Port number from the console. Using gethostbyname() function assign it to a hostent structure, and assign it to sin_addr of

    the server address structure. Obtain the command to be executed in the server from the user. Send the command to the server.

    Receive the output from the server and print it on the console.CODING:Server: udpremoteserver.c#include#include#include#include#include

    Page | 39

  • 8/13/2019 Lab Manual - Tcpip - It0405

    40/45

    #include#include#include#includeint main(int argc,char* argv[]){

    int sd,size;char buff[1024],file[10000];struct sockaddr_in cliaddr,servaddr;

    FILE *fp;struct stat x;

    socklen_t clilen;clilen=sizeof(cliaddr);

    bzero(&servaddr,sizeof(servaddr));servaddr.sin_family=AF_INET;servaddr.sin_addr.s_addr=htonl(INADDR_ANY);servaddr.sin_port=htons(9976);sd=socket(AF_INET,SOCK_DGRAM,0);if(sd

  • 8/13/2019 Lab Manual - Tcpip - It0405

    41/45

    int sd;char buff[1024],file[10000];struct sockaddr_in cliaddr,servaddr;struct hostent *h;

    socklen_t servlen;servlen=sizeof(servaddr);

    h=gethostbyname(argv[1]); bzero(&servaddr,sizeof(servaddr));servaddr.sin_family=h->h_addrtype;memcpy((char *)&servaddr.sin_addr,h->h_addr_list[0],h->h_length);servaddr.sin_port=htons(9976);sd=socket(AF_INET,SOCK_DGRAM,0);if(sd

  • 8/13/2019 Lab Manual - Tcpip - It0405

    42/45

  • 8/13/2019 Lab Manual - Tcpip - It0405

    43/45

    Ex No: 10Date:

    ARP IMPLEMENTATION USING UDP

    GIVEN REQUIREMENTS:

    There is a single host. The IP address of any Client in the network is given as input and thecorresponding hardware address is got as the output.

    TECHNICAL OBJECTIVE :

    Address Resolution Protocol (ARP) is implemented through this program. The IP addressof any Client is given as the input. The ARP cache is looked up for the corresponding hardware address.This is returned as the output. Before compiling that Client is pinged.

    METHODOLOGY:

    Include the necessary header files. Create a socket using socket function with family AF_INET, type as SOCK_DGRAM. Declare structures arpreq ( as NULL structure, if required) and sockaddr_in. Initialize server address to 0 using the bzero function. Assign the sin_family to AF_INET and sin_addr using inet_aton(). Using the object of arpreq structure assign the name of the Network Device to the data

    member arp_dev like, arp_dev=eth0. Ping the required Client. Using the ioctl() we get the ARP cache entry for the given IP address. The output of the ioctl() function is stored in the sa_data[0] datamember of the arp_ha

    structure which is in turn a data member of structure arpreq. Print the hardware address of the given IP address on the output console.

    CODING:ARP: arp.c

    #include#include#include#include#include#include#include#include

    Page | 43

  • 8/13/2019 Lab Manual - Tcpip - It0405

    44/45

  • 8/13/2019 Lab Manual - Tcpip - It0405

    45/45

    --- 172.16.29.51ping statistics ---

    2 packets transmitted, 2 received, 0% packet loss, time 999ms

    rtt min/avg/max/mdev = 0.817/1.005/1.193/0.188 ms

    [root@localhost 4ita33]# cc arp.c[root@localhost 4ita33]# ./a.out 172.16.29.51

    Hardware Address is: 172.16.29.51:

    The MAC address is:0:8:5C:5D:47:50:

    INFERENCE :

    Thus the ARP implementation is developed to gets the MAC address of the remote machines IPaddress from ARP cache and prints it.


Recommended