Professional Documents
Culture Documents
On
Submitted by
BHUBANESWAR, ODISHA-751030
1. Write a TCP based IPV6 server and IPV6 client program to meet the
requirement of the above given problem statement.
Ans:
Server.c
#include <stdio.h>
#include <sys/socket.h>
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include<unistd.h>
int main(int argc, char const *argv[])
{
int sockfd,m,a,b;
struct sockaddr_in serv_addr,cli_addr;
socklen_t servlen,clilen;
int newsockfd;
char buff1[256],buff2[256];
//socket creation
sockfd=socket(AF_INET,SOCK_STREAM,0);
if (sockfd<0)
printf("Socket creation failed\n");
else
{
printf("Socket created\n");
printf("Socket description-%d\n",sockfd );
}
bzero((char *)&serv_addr,sizeof(serv_addr));
serv_addr.sin_family=AF_INET;
serv_addr.sin_addr.s_addr=INADDR_ANY;
serv_addr.sin_port=htons(atoi(argv[1]));
//binding of socket
if (bind(sockfd,(struct sockaddr *)&serv_addr,sizeof(serv_addr))<0)
perror("Error in binding the socket");
//listening of socket
listen(sockfd,5);
printf("The server is listening\n");
//accept of socket
newsockfd=accept(sockfd,(struct sockaddr *)&cli_addr,&clilen);
if(newsockfd<0)
perror("Error in accepting");
else
printf("Server is accepting\n");
while(1)
{
read(newsockfd,&a,sizeof(a));
printf("Numbers received from client %d \n",a);
int n=a<0?-a:a;int rev=0;
while(n!=0)
{
rev=rev*10+(n%10);
n/=10;
}
rev=a<0?-rev:rev;
write(newsockfd,&rev,sizeof(rev));
}
close(sockfd);
return 0;
}
Client.c
#include <stdio.h>
#include <sys/socket.h>
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <stdlib.h>
#include <arpa/inet.h>
int main(int argc, char const *argv[])
{
int sockfd,n,m;
struct sockaddr_in6 cli_addr;
sockfd=socket(AF_INET6,SOCK_STREAM,0);
char buff1[256],buff2[256];
if(sockfd<0)
perror("Error in socket creation");
bzero((char *)&cli_addr,sizeof(cli_addr));
cli_addr.sin6_family=AF_INET6;
//cli_addr.sin6_addr=inet6_addr(argv[1]);
cli_addr.sin6_port=htons(atoi(argv[1]));
inet_pton(AF_INET6,"::1",&cli_addr.sin6_addr); if(connect(sockfd,
(struct sockaddr *)&cli_addr,sizeof(cli_addr))<0)
{
perror("Error in connection establishment");
return 1;
}
printf("Enter number\n");
scanf("%d",&n);
write(sockfd,&n,sizeof(n));
read(sockfd,&m,sizeof(m));
printf("Reverse number= %d\n",m);
return 0;
}
Server:-
Client:-
2. Develop a TCP based IPV6 server and IPV4 client program to get the
solution of the given problem.
Ans:
Server.c
#include <stdio.h>
#include <sys/socket.h>
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include<unistd.h>
int main(int argc, char const *argv[])
{
int sockfd,a;
struct sockaddr_in6 serv_addr,cli_addr;
socklen_t servlen,clilen;
int newsockfd;
char buff1[256],buff2[256];
//socket creation
sockfd=socket(AF_INET6,SOCK_STREAM,0);
if (sockfd<0)
printf("Socket creation failed\n");
else
{
printf("Socket created\n");
printf("Socket description-%d\n",sockfd );
}
bzero((char *)&serv_addr,sizeof(serv_addr));
serv_addr.sin6_family=AF_INET6;
serv_addr.sin6_addr=in6addr_any;
serv_addr.sin6_port=htons(atoi(argv[1]));
//binding of socket
if (bind(sockfd,(struct sockaddr *)&serv_addr,sizeof(serv_addr))<0)
perror("Error in binding the socket");
//listening of socket
listen(sockfd,5);
printf("The server is listening\n");
//accept of socket
newsockfd=accept(sockfd,(struct sockaddr *)&cli_addr,&clilen);
if(newsockfd<0)
perror("Error in accepting");
else
printf("Server is accepting\n");
read(newsockfd,&a,sizeof(a));
printf("Numbers received from client %d \n",a);
int n=a<0?-a:a;int rev=0;
while(n!=0)
{
rev=rev*10+(n%10);
n/=10;
}
rev=a<0?-rev:rev;
write(newsockfd,&rev,sizeof(rev));
close(sockfd);
return 0;
}
Client.c
#include <stdio.h>
#include <sys/socket.h>
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <stdlib.h>
#include <arpa/inet.h>
int main(int argc, char const *argv[])
{
int sockfd,m,a,b,ch;
struct sockaddr_in cli_addr;
sockfd=socket(AF_INET,SOCK_STREAM,0);
char buff1[256],buff2[256];
if(sockfd<0)
perror("Error in socket creation");
bzero((char *)&cli_addr,sizeof(cli_addr));
cli_addr.sin_family=AF_INET;
cli_addr.sin_addr.s_addr=inet_addr(argv[1]);
cli_addr.sin_port=htons(atoi(argv[2]));
if(connect(sockfd,(struct sockaddr *)&cli_addr,sizeof(cli_addr))<0)
{
perror("Error in connection establishment");
return 1;
}
do
{
printf("Enter a\n");
scanf("%d",&a);
write(sockfd,&a,sizeof(a));
read(sockfd,&m,sizeof(m));
printf("server sent reverse number is=%d\n", m);
printf("Do you want to send more number.Press 1 for yes 0 for no\n");
scanf("%d",&ch);
}while(ch==1);
return 0;
}
Server:-
Client:-
3. Write a TCP based IPV4 server and IPV6 client program to find a solution of
the given problem.
Ans:
Server.c
#include <stdio.h>
#include <sys/socket.h>
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include<unistd.h>
int main(int argc, char const *argv[])
{
int sockfd,m,a,b;
struct sockaddr_in serv_addr,cli_addr;
socklen_t servlen,clilen;
int newsockfd;
char buff1[256],buff2[256];
//socket creation
sockfd=socket(AF_INET,SOCK_STREAM,0);
if (sockfd<0)
printf("Socket creation failed\n");
else
{
printf("Socket created\n");
printf("Socket description-%d\n",sockfd );
}
bzero((char *)&serv_addr,sizeof(serv_addr));
serv_addr.sin_family=AF_INET;
serv_addr.sin_addr.s_addr=INADDR_ANY;
serv_addr.sin_port=htons(atoi(argv[1]));
//binding of socket
if (bind(sockfd,(struct sockaddr *)&serv_addr,sizeof(serv_addr))<0)
perror("Error in binding the socket");
//listening of socket
listen(sockfd,5);
printf("The server is listening\n");
//accept of socket
newsockfd=accept(sockfd,(struct sockaddr *)&cli_addr,&clilen);
if(newsockfd<0)
perror("Error in accepting");
else
printf("Server is accepting\n");
while(1)
{
read(newsockfd,&a,sizeof(a));
printf("Numbers received from client %d \n",a);
int n=a<0?-a:a;int rev=0;
while(n!=0)
{
rev=rev*10+(n%10);
n/=10;
}
rev=a<0?-rev:rev;
write(newsockfd,&rev,sizeof(rev));
}
close(sockfd);
return 0;
}
Client.c
#include <stdio.h>
#include <sys/socket.h>
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <stdlib.h>
#include <arpa/inet.h>
int main(int argc, char const *argv[])
{
int sockfd,n,m;
struct sockaddr_in6 cli_addr;
sockfd=socket(AF_INET6,SOCK_STREAM,0);
char buff1[256],buff2[256];
if(sockfd<0)
perror("Error in socket creation");
bzero((char *)&cli_addr,sizeof(cli_addr));
cli_addr.sin6_family=AF_INET6;
//cli_addr.sin6_addr=inet6_addr(argv[1]);
cli_addr.sin6_port=htons(atoi(argv[1]));
inet_pton(AF_INET6,"::1",&cli_addr.sin6_addr); if(connect(sockfd,
(struct sockaddr *)&cli_addr,sizeof(cli_addr))<0)
{
perror("Error in connection establishment");
return 1;
}
printf("Enter number\n");
scanf("%d",&n);
write(sockfd,&n,sizeof(n));
read(sockfd,&m,sizeof(m));
printf("Reverse number= %d\n",m);
return 0;
}
Server:-
Client:-
4. Write a TCP based IPv4 server and IPV4 client program to meet the above
problem specification.
Ans:
Server.c
#include <stdio.h>
#include <sys/socket.h>
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include<unistd.h>
int main(int argc, char const *argv[])
{
int sockfd,m,a,b;
struct sockaddr_in serv_addr,cli_addr;
socklen_t servlen,clilen;
int newsockfd;
char buff1[256],buff2[256];
//socket creation
sockfd=socket(AF_INET,SOCK_STREAM,0);
if (sockfd<0)
printf("Socket creation failed\n");
else
{
printf("Socket created\n");
printf("Socket description-%d\n",sockfd );
}
bzero((char *)&serv_addr,sizeof(serv_addr));
serv_addr.sin_family=AF_INET;
serv_addr.sin_addr.s_addr=INADDR_ANY;
serv_addr.sin_port=htons(atoi(argv[1]));
//binding of socket
if (bind(sockfd,(struct sockaddr *)&serv_addr,sizeof(serv_addr))<0)
perror("Error in binding the socket");
//listening of socket
listen(sockfd,5);
printf("The server is listening\n");
//accept of socket
newsockfd=accept(sockfd,(struct sockaddr *)&cli_addr,&clilen);
if(newsockfd<0)
perror("Error in accepting");
else
printf("Server is accepting\n");
while(1)
{
read(newsockfd,&a,sizeof(a));
printf("Numbers received from client %d \n",a);
int n=a<0?-a:a;int rev=0;
while(n!=0)
{
rev=rev*10+(n%10);
n/=10;
}
rev=a<0?-rev:rev;
write(newsockfd,&rev,sizeof(rev));
}
close(sockfd);
return 0;
}
Client.c
#include <stdio.h>
#include <sys/socket.h>
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <stdlib.h>
#include <arpa/inet.h>
int main(int argc, char const *argv[])
{
int sockfd,m,a,b,ch;
struct sockaddr_in cli_addr;
sockfd=socket(AF_INET,SOCK_STREAM,0);
char buff1[256],buff2[256];
if(sockfd<0)
perror("Error in socket creation");
bzero((char *)&cli_addr,sizeof(cli_addr));
cli_addr.sin_family=AF_INET;
cli_addr.sin_addr.s_addr=inet_addr(argv[1]);
cli_addr.sin_port=htons(atoi(argv[2]));
if(connect(sockfd,(struct sockaddr *)&cli_addr,sizeof(cli_addr))<0)
{
perror("Error in connection establishment");
return 1;
}
do
{
printf("Enter a\n");
scanf("%d",&a);
write(sockfd,&a,sizeof(a));
read(sockfd,&m,sizeof(m));
printf("server sent reverse number is=%d\n", m);
printf("Do you want to send more number.Press 1 for yes 0 for no\n");
scanf("%d",&ch);
}while(ch==1);
return 0;
}
Server:-
Client:-