answersLogoWhite

0

/*************************************************************************************/

/* C program to implement stop and wait protocol*/

/* Download more programs at http://sourcecode4u.com/ */

/*************************************************************************************/

#include<stdio.h>

#include<conio.h>

#define MAXSIZE 100

typedef struct

{

unsigned char data[MAXSIZE];

}packet;

typedef enum{data,ack}frame_kind;

typedef struct

{

frame_kind kind;

int sq_no;

int ack;

packet info;

}frame;

typedef enum{frame_arrival}event_type;

typedef enum{true_false}boolean;

void frame_network_layer(packet *p)

{

printf("\n from network arrival");

}

void to_physical_layer(frame *f)

{

printf("\n to physical layer");

}

void wait_for_event(event_type *e)

{

printf("\n waiting for event n");

}

void sender(void)

{

frame s;

packet buffer;

event_type event;

printf("\n ***SENDER***");

frame_network_layer(&buffer);

s.info=buffer;

to_physical_layer(&s);

wait_for_event(&event);

}

void from_physical_layer(frame *f)

{

printf("from physical layer");

}

void to_network_layer(packet *p)

{

printf("\n to network layer");

}

void receiver(void)

{

frame r,s;

event_type event;

printf("\n ***RECEIVER***");

wait_for_event(&event);

from_physical_layer(&r);

to_network_layer(&r.info);

to_physical_layer(&s);

}

main()

{

sender();

receiver();

getch();

}

User Avatar

Wiki User

13y ago

Still curious? Ask our experts.

Chat with our AI personalities

MaxineMaxine
I respect you enough to keep it real.
Chat with Maxine
CoachCoach
Success isn't just about winning—it's about vision, patience, and playing the long game.
Chat with Coach
TaigaTaiga
Every great hero faces trials, and you—yes, YOU—are no exception!
Chat with Taiga
More answers

/* Stop and Wait Protocol ( Flow Control ) */

#include<stdio.h>

#include<bios.h>

#include<conio.h>

#define COM1 0

#define SETTINGS 0x82

#define DTR 0x100

void main()

{

int ch,status,i=0,true=1;

char msg[100],ack,rec;

clrscr();

bioscom(0,SETTINGS,COM1);

printf("\n 1.Transmit\n 2.Receive");

printf("\n\n Enter the operation code : ");

scanf("%d",&ch);

switch(ch)

{

case 1 : printf("\n Enter the Message \n ");

scanf("%s",&msg);

while(msg[i]!='\0')

{

bioscom(1,msg[i],COM1);

printf("\n%c",msg[i]);

do

{

while(1)

{

status=bioscom(3,0,COM1);

if(status & DTR)

{

ack=bioscom(2,0,COM1) & 0x7F;

if(ack=='0')

{

bioscom(1,msg[i],COM1);

printf("\n%c - retransmitted ",msg[i]);

}

break;

}

}

}while(ack!='1');

i++;

}

break;

case 2 : printf("\n Receiver \t Press Escape to quit\n\n");

do

{

status=bioscom(3,0,COM1);

if(status & DTR)

{

rec=bioscom(2,0,COM1);

printf("\n%c -- Enter ACK(1 for +ve, 0 for -ve) :",rec);

ack=getche();

bioscom(1,ack,COM1);

}

if(kbhit())

if(getch()=='\x1b')

true=0;

}while(true);

break;

default : printf("\n Invalid Selection");

}

}

User Avatar

Wiki User

13y ago
User Avatar

Add your answer:

Earn +20 pts
Q: Program for stop and wait protocol in c language?
Write your answer...
Submit
Still have questions?
magnify glass
imp