Sie sind auf Seite 1von 3

/ *********************************************************************************** **/ /* C program to implement stop and wait protocol*/ **************************************************************************/ #include<stdio.

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();

Sender.c
#include<stdio.h> #include<stdlib.h> #include<string.h> int main() { int i, n, ch; char input[20]; FILE *in; randomize(); printf(\n\t\t Stop and Wait Protocol \n); printf(\n 1. Send \n2. Check ACK\n3.EOT\n); while(1) { printf(Enter your choice.); scanf(%d, &ch); switch(ch) { case 1: in = fopen(data.txt, w); printf(Enter the Data: ); scanf(%s, input); n = strlen(input); for(i=0; i<n+1; i++) fprintf(in, %s, input); fclose(in); printf(->Data Sent\n); break; getch(); }

Receiver.c
#include<stdio.h> #include<conio.h> #include<string.h> void main() { int i, n,; char output[20]; FILE *out; clrscr(); out=fopen(data_parity.txt, r); fscanf(out, %s, output); n = strlen(output); for(i=0; i<n; i++) if(output[i]==1) one++; if(one%2==0) { printf(Received Data has Even Parity\n); printf(Data Accepted\n); } else { printf(Received Data has Odd Parity\n); printf(Data Rejected\n); } printf(Received Data: ); for(i=0;i<n-1; i++) printf(%c, output[i]; fclose(out); getch(); }

Das könnte Ihnen auch gefallen