02 May, 2014

Protocol 2

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");
    }
}