SERVER SIDE:
#include<stdio.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<string.h>
int main(int argc,char **argv)
{
int len;
int listenfd,connfd,n;
struct sockaddr_in servaddr,cliaddr;
char b[1024];
char c[1000];
listenfd=socket(AF_INET,SOCK_STREAM,0);
if(listenfd<0)
perror("cannot create socket");
bzero(&servaddr,sizeof(servaddr));
servaddr.sin_family=AF_INET;
servaddr.sin_addr.s_addr=inet_addr("20.30.1.211");
servaddr.sin_port=htons(20064);
bind(listenfd,(struct
sockaddr*)&servaddr,sizeof(servaddr));
listen(listenfd,5);
len=sizeof(cliaddr);
connfd=accept(listenfd,(struct
sockaddr*)&cliaddr,&len);
if(connfd>0)
printf("\n connection established");
do
{
n=read(connfd,b,1024);
printf("\n reeive data %s",b);
printf("\n your acknowledgement[yes=1,no=0]:");
scanf("%s",c);
n=write(connfd,c,1024);
}while(1);
close(connfd);
close(listenfd);
return 0;
}
CLIENT SIDE:
#include<stdio.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<string.h>
int main(int arg,char **argv)
{
int len;
int sockfd,n,m,p;
struct sockaddr_in servaddr,cliaddr;
char buff[1024];
char buff1[1000];
char str[1000];
char d[10]={'a','b','c','d','e','f','g','h','i','j'};
int count[10],ack[10];
int i,j,k;
for(k=0;k<10;k++)
{
count[k]=0;
ack[k]=0;
}
sockfd=socket(AF_INET,SOCK_STREAM,0);
if(sockfd<0)
perror("\n cannot create socket");
bzero(&servaddr,sizeof(servaddr));
servaddr.sin_family=AF_INET;
servaddr.sin_addr.s_addr=inet_addr("20.30.1.211");
servaddr.sin_port=htons(20064);
m=connect(sockfd,(struct sockaddr
*)&servaddr,sizeof(servaddr));
if(m==0)
printf("\n connection established");
i=0;
do
{
*buff=d[i];
n=write(sockfd,buff,1024);
n=read(sockfd,buff1,1024);
if(strcmp(buff1,"1")==0)
{
for(p=i;p>i-2,p>=0;p--)
{
ack[p]=1;
count[p]=1;
}
}
for(j=i;j>i-3,j>=0;j--)
{
if(ack[j]==0)
count[j]++;
}
if(i>=2 && count[i-2]==3)
{
count[i-2]=1;
i=i-2;
}
else
i++;
}
while(i<10);
printf("the data is successfully sent to the server
\n");
close(sockfd);
return 0;
}
OUTPUT:
SERVER SIDE:
"serversli.c" 39L, 881C written
[ME04@TELNET ~]$ cc serversli.c
[ME04@TELNET ~]$ ./a.out
connection
established
reeive data a
your
acknowledgement[yes=1,no=0]:1
reeive data b
your
acknowledgement[yes=1,no=0]:1
reeive data c
your
acknowledgement[yes=1,no=0]:1
reeive data d
your
acknowledgement[yes=1,no=0]:1
reeive data e
your
acknowledgement[yes=1,no=0]:1
reeive data f
your
acknowledgement[yes=1,no=0]:1
reeive data g
your
acknowledgement[yes=1,no=0]:1
reeive data h
your
acknowledgement[yes=1,no=0]:1
reeive data i
your
acknowledgement[yes=1,no=0]:0
reeive data j
your
acknowledgement[yes=1,no=0]:1
reeive data j
your
acknowledgement[yes=1,no=0]:1
reeive data j
your
acknowledgement[yes=1,no=0]:0
[ME04@TELNET ~]$
CLIENT SIDE:
"clientsli.c" 64L, 1100C written
[ME04@TELNET ~]$ cc clientsli.c
[ME04@TELNET ~]$ ./a.out
connection
establishedthe data is successfully sent to the server
[ME04@TELNET ~]$
No comments:
Post a Comment