Sender
#include<stdio.h>#include<fcntl.h>
int main()
{
int retval;
char buffer1[63],buffer2[63];
char buflen = 64;
int fd1,fd2;
fd1 = open("Compipe",O_RDWR);
fd2 = open("Ackfifo",O_RDWR);
for(;;)
{
printf("Please Enter The Message \n");
fflush(stdin);
scanf("%s",buffer1);
retval = write(fd1,&buffer1,buflen);
if(!strcmp(buffer1,"Bye"))
break;
if(retval < 0)
perror("Sendetr");
retval = read(fd2,&buffer2,buflen);
//read stops untill the receiver sends back the ack
if(retval < 0)
perror("Sender Ack");
}
}
Receiver
#include<stdio.h>
#include<fcntl.h>
int main()
{
int retval;
char buffer1[63],buffer2[63];
char buflen = 64;
int fd1,fd2;
fd1 = open("Compipe",O_RDWR);
fd2 = open("Ackfifo",O_RDWR);
for(;;)
{
retval = read(fd1,&buffer1,buflen);
if(!strcmp(buffer1,"Bye"))
break;
if(retval < 0)
perror("Receiver");
printf("Receiver Message is : - ")
printf("%s\n",buffer1);
//simulating the application read time
//sleep(10);
retval = write(fd2,&buffer2,buflen);
//sending back the ack!
if(retval < 0)
perror("Receiver Ack");
}
}