No:3
Date:
Client Server Communication using TCP/IP
Aim
Implement client-server communication using socket programming and TCP as
transport layer protocol.
Algorithm
Server
[Link] a Socket Object
server=socket(AF_INET,SOCK_STREAM,0);
[Link] the socket with port and ipaddress
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = inet_addr("[Link]");
servaddr.sin_port = htons( PORT );
int b=bind(server,(struct sockaddr*)&servaddr,sizeof(servaddr));
3 Listen the Socket for Client Connections
listen(server,3);
[Link] the Request from Client
client=accept(server,(struct sockaddr*)&clientaddr,&addrlen);
[Link] and send data from client
while(1)
{
n= read(client,buffer,1023);
buffer[n]='\0';
print("received ",buffer);
if (buffer="stop”)
break;
print("Enter The Data to send");
input s;
send(client,s,strlen(s),0);
}
[Link].
Client
[Link] a Socket Object
client=socket(AF_INET,SOCK_STREAM,0);
[Link] it to the server socket.
serveraddr.sin_family=AF_INET;
serveraddr.sin_addr.s_addr=inet_addr("[Link]");
serveraddr.sin_port = htons( port );
connect(client,(struct sockaddr*)&serveraddr,sizeof(serveraddr))
[Link] and recieve data from the Server.
while(1)
{ print("Enter the Data to send ");
Input s;
send(client,s,strlen(s),0);
if (s="stop")
break;
n=read(client,buffer,1023);
buffer[n]='\0';
print("Received ",buffer);
}
[Link]
Result
Program Executed Successfully and output verified .Attainedco2-PO1 PO2 PO3 PO4 po8 po10 po12
program
Server
#include<stdio.h>
#include <unistd.h>
#include<string.h>
#include <netinet/in.h>
#include <arpa/inet.h>
//#include <sys/socket.h>
//#include<stdlib.h>
int main()
{
int server,client;
char buffer[1024];
char s[1024];
int PORT=1026;
struct sockaddr_in servaddr,clientaddr;
int addrlen = sizeof(clientaddr);
server=socket(AF_INET,SOCK_STREAM,0);
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = inet_addr("[Link]");
servaddr.sin_port = htons( PORT );
int b=bind(server,(struct sockaddr*)&servaddr,sizeof(servaddr));
listen(server,3);
client=accept(server,(struct sockaddr*)&clientaddr,&addrlen);
printf("connected");
while(1)
{
int n= read(client,buffer,1023);
buffer[n]='\0';
printf("received %s\n",buffer);
if (strcmp(buffer,"stop")==0)
break;
printf("Enter The Data to send");
scanf("%s",s);
send(client,s,strlen(s),0);
}
Client
#include<stdio.h>
#include <unistd.h>
#include<string.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main()
{ int client;
struct sockaddr_in serveraddr;
char buffer[1024];
char s[1024];
int port=1026;
client=socket(AF_INET,SOCK_STREAM,0);
serveraddr.sin_family=AF_INET;
serveraddr.sin_addr.s_addr=inet_addr("[Link]");
serveraddr.sin_port = htons( port );
if( connect(client,(struct
sockaddr*)&serveraddr,sizeof(serveraddr))>0)
printf("connected");
while(1)
{ printf("Enter the Data to send ");
scanf("%s",s);
send(client,s,strlen(s),0);
if (strcmp(s,"stop")==0)
break;
int n=read(client,buffer,1023);
buffer[n]='\0';
printf("Received %s\n",buffer);
}