network lap pgms 7th semester

43
NETWORK LAB PROGRAMS 1.CRC #include<stdio.h> #include<string.h> char data[100],concatdata[117],src_crc[17],dest_crc[17],frame[120],divident [18],divisor[18]="10001000000100001",res[17]="0000000000000000"; void crc_cal(int node) { int i,j; for(j=17;j<=strlen(concatdata);j++) { if(divident[0]=='1') { for(i=1;i<=16;i++) if(divident[i]!=divisor[i]) divident[i-1]='1'; else divident[i-1]='0'; } else { for(i=1;i<=16;i++)

Upload: dosonka-group

Post on 20-Jan-2015

6.119 views

Category:

Education


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Network lap pgms 7th semester

NETWORK LAB PROGRAMS

1.CRC

#include<stdio.h>

#include<string.h>

char data[100],concatdata[117],src_crc[17],dest_crc[17],frame[120],divident[18],divisor[18]="10001000000100001",res[17]="0000000000000000";

void crc_cal(int node)

{

int i,j;

for(j=17;j<=strlen(concatdata);j++)

{

if(divident[0]=='1')

{

for(i=1;i<=16;i++)

if(divident[i]!=divisor[i])

divident[i-1]='1';

else

divident[i-1]='0';

}

else

{

for(i=1;i<=16;i++)

divident[i-1]=divident[i];

}

Page 2: Network lap pgms 7th semester

if(node==0)

divident[i-1]=concatdata[j];

else

divident[i-1]=frame[j];

}

divident[i-1]='\0';

printf("\ncrc is %s\n",divident);

if(node==0)

{

strcpy(src_crc,divident);

}

else

strcpy(dest_crc,divident);

}

int main()

{

int i,len,rest;

printf("\n\t\t\tAT SOURCE NODE\n\nenter the data to be send :");

gets(data);

strcpy(concatdata,data);

strcat(concatdata,"0000000000000000");

for(i=0;i<=16;i++)

divident[i]=concatdata[i];

Page 3: Network lap pgms 7th semester

divident[i+1]='\0';

crc_cal(0);

printf("\ndata is :\t");

puts(data);

printf("\nthe frame transmitted is :\t");

printf("\n%s%s",data,src_crc);

printf("\n\t\tSOURCE NODE TRANSMITTED THE FRAME ---->");

printf("\n\n\n\n\t\t\tAT DESTINATION NODE\nenter the received frame:\t");

gets(frame);

for(i=0;i<=16;i++)

divident[i]=frame[i];

divident[i+1]='\0';

crc_cal(1);

if(strcmp(dest_crc,res)==0)

printf("\nreceived frame is error free ");

else

printf("\nreceived frame has one or more error");

return 1;

}

Page 4: Network lap pgms 7th semester

2.Distance vector

#include<stdio.h>

struct rtable

{

int dist[20],nextnode[20];

}table[20];

int cost[10][10],n;

void distvector()

{

int i,j,k,count=0;

for(i=0;i<n;i++)

{

for(j=0;j<n;j++)

{

table[i].dist[j]=cost[i][j];

table[i].nextnode[j]=j;

}

}

do

{

count=0;

for(i=0;i<n;i++)

{

for(j=0;j<n;j++)

Page 5: Network lap pgms 7th semester

{

for(k=0;k<n;k++)

{

if(table[i].dist[j]>cost[i][k]+table[k].dist[j])

{

table[i].dist[j]=table[i].dist[k]+table[k].dist[j];

table[i].nextnode[j]=k;

count++;

}

}

}

}

}while(count!=0);

}

int main()

{

int i,j;

printf("\nenter the no of vertices:\t");

scanf("%d",&n);

printf("\nenter the cost matrix\n");

for(i=0;i<n;i++)

for(j=0;j<n;j++)

scanf("%d",&cost[i][j]);

distvector();

for(i=0;i<n;i++)

Page 6: Network lap pgms 7th semester

{

printf("\nstate value for router %c \n",i+65);

printf("\ndestnode\tnextnode\tdistance\n");

for(j=0;j<n;j++)

{

if(table[i].dist[j]==99)

printf("%c\t\t-\t\tinfinite\n",j+65);

else

printf("%c\t\t%c\t\t%d\n",j+65,table[i].nextnode[j]+65,table[i].dist[j]);

}

}

return 0;

}

Page 7: Network lap pgms 7th semester

3.FIFO Client

#include <stdio.h>

#include <stdlib.h>

#include <errno.h>

#include <string.h>

#include <fcntl.h>

#include <sys/types.h>

#include <sys/stat.h>

#include <unistd.h>

#define FIFO1_NAME "fifo1"

#define FIFO2_NAME "fifo2"

int main()

{

char p[100],f[100],c[100];

Page 8: Network lap pgms 7th semester

int num,num2,fl,fd,fd2;

mknod(FIFO1_NAME,S_IFIFO | 0666, 0);

mknod(FIFO2_NAME,S_IFIFO | 0666,0);

printf("\n Waiting for SERVER ! \n\n");

fd=open(FIFO1_NAME,O_WRONLY);

printf("Server online !\n client:Enter the path \n");

while(gets(p), !feof(stdin))

{

if ((num = write(fd,p,strlen(p))) == -1)

perror("write error\n");

else

{

printf("waiting for reply ...\n");

Page 9: Network lap pgms 7th semester

fd2=open(FIFO2_NAME, O_RDONLY);

if ((num2=read(fd2,c,300))== -1)

perror("Transfer error\n");

else

{

printf("File receiver ! Displaying the contents :\n");

if (fputs(c,stdout)== EOF)

perror("print error \n");

exit(1);

}

}

}

}

Page 10: Network lap pgms 7th semester

4.FIFO Server

#include <stdio.h>

#include <stdlib.h>

#include <errno.h>

#include <string.h>

#include <fcntl.h>

#include <sys/types.h>

#include <sys/stat.h>

#include <unistd.h>

#define FIFO1_NAME "fifo1"

#define FIFO2_NAME "fifo2"

int main()

Page 11: Network lap pgms 7th semester

{

char p[100],f[100],c[100];

int num,num2,fl,fd,fd2;

mknod(FIFO1_NAME,S_IFIFO | 0666, 0);

mknod(FIFO2_NAME,S_IFIFO | 0666,0);

printf("SERVER Online ! \n\n");

fd=open(FIFO1_NAME,O_RDONLY);

printf("client online !@\n waiting for request ...\n\n");

while(1)

{

if ((num = read(fd,p,100)) == -1)

perror("read error\n");

else

Page 12: Network lap pgms 7th semester

{

p[num]='\0';

if (( fl=open(p,O_RDONLY)) <0)

{

printf("\n SERVER : %s not found\n");

exit(1);

}

else

{

printf("SERVER : %s found ! \n transfering the contents \n",p);

stdin=fdopen(fl,"r");

if(fgets(c,300,stdin) != NULL)

Page 13: Network lap pgms 7th semester

{

fd2=open(FIFO2_NAME, O_WRONLY);

if(num2=write(fd2,c,strlen(c))== -1)

perror("Transfer error\n");

else

printf("SERVER : Transfer completed \n");

}

else

perror("read error\n");

exit(1);

}

}

}

}

Page 14: Network lap pgms 7th semester

5.Frame

#include<stdio.h>

struct frame

{

int fslno;

char finfo[20];

};

struct frame arr[10];

int n;

void sort()

{

int i,j,ex;

Page 15: Network lap pgms 7th semester

struct frame temp;

for(i=0;i<n-1;i++)

{

ex=0;

for(j=0;j<n-i-1;j++)

if(arr[j].fslno>arr[j+1].fslno)

{

temp=arr[j];

arr[j]=arr[j+1];

arr[j+1]=temp;

ex++;

}

}

Page 16: Network lap pgms 7th semester

}

int main()

{

int i;

system("clear");

printf("enter the number of frames\n");

scanf("%d",&n);

printf("enter the frame sequence number and frame contents\n");

for(i=0;i<n;i++)

scanf("%d%s",&arr[i].fslno,&arr[i].finfo);

sort();

printf("the frames in sequence\n");

Page 17: Network lap pgms 7th semester

for(i=0;i<n;i++)

{

printf("01111110 %d\t%s 01111110\n",arr[i].fslno,arr[i].finfo);

printf("|---------------------------------------------|\n");

}

}

Page 18: Network lap pgms 7th semester

6. Hamming code

#include<stdio.h>

#include<math.h>

main()

{

int i,j,k,count,error_pos=0,flag=0;

char dw[20],cw[20],data[20];

printf("enter the data as binary bit stream 7 bits\n");

scanf("%s",data);

for(i=1,j=0,k=0;i<12;i++)

{

if(i==(int)pow(2,j))

{

Page 19: Network lap pgms 7th semester

dw[i]='?';

j++;

}

else

{

dw[i]=data[k];

k++;

}

}

for(i=0;i<4;i++)

{

count=0;

Page 20: Network lap pgms 7th semester

for(j=(int)pow(2,i);j<12;j+=(int)pow(2,i))

{

for(k=0;k<(int)pow(2,i);k++)

{

if(dw[j]=='1')

count++;

j++;

}

}

if(count%2 == 0)

dw[(int)pow(2,i)]='0';

else

Page 21: Network lap pgms 7th semester

dw[(int)pow(2,i)]='1';

}

printf("\n CODE WORD is \n\n");

for(i=1;i<12;i++)

printf("%c",dw[i]);

printf("\n\nenter the received hamming code\n\n");

scanf("%s",cw);

for(i=12;i>0;i--)

cw[i]=cw[i-1];

for(i=0;i<4;i++)

{

count=0;

Page 22: Network lap pgms 7th semester

for(j=(int)pow(2,i);j<12;j+=(int)pow(2,i))

{

for(k=0;k<(int)pow(2,i);k++)

{

if(cw[j]=='1')

count++;

j++;

}

}

if(count%2 != 0)

error_pos=error_pos+(int)pow(2,i);

}

if(error_pos ==0)

Page 23: Network lap pgms 7th semester

printf("\n\n There is no ERROR in received Code Word\n");

else

{

if(cw[error_pos]==dw[error_pos])

{

printf("\n\nThere are TWO or MORE Errors in received Code Word\n\n");

printf("SORRY........! Hamming code cannot correct TWO or MORE Errors\n");

flag=1;

}

else

printf("\nThere is an Error in bit position %d of received Code Word \n\n",error_pos);

if(flag==0)

Page 24: Network lap pgms 7th semester

{

if(cw[error_pos]=='1')

cw[error_pos]='0';

else

cw[error_pos]='1';

printf("\n\nCORRECTED CODE WORD is \n\n");

for(i=1;i<12;i++)

printf("%c",cw[i]);

}

}

printf("\n\n");

}

Page 25: Network lap pgms 7th semester

7. Leaky bucket

#include<stdio.h>

#include<math.h>

#include<stdlib.h>

int t_rand(int a)

{

int rn;

rn=random()%10;

rn=rn%a;

if(rn==0)

rn=1;

return(rn);

Page 26: Network lap pgms 7th semester

}

int main()

{

int packets[5],i,j,clk,b_size,o_rate,p_sz_rm=0,p_sz,p_time;

int flag=0;

system("clear");

for(i=0;i<5;++i)

packets[i]=t_rand(6)*10;

printf("\n enter the output rate\n");

scanf("%d",&o_rate);

printf("\n enter the bucket size\n");

scanf("%d",&b_size);

Page 27: Network lap pgms 7th semester

for(i=0;i<5;++i)

{

if((packets[i]+p_sz_rm)>b_size)

{

if(packets[i]>b_size)

printf("\n incoming packet size (%d) is greater than bucket capacity %d\n p/c rejected",packets[i],b_size);

else

printf("\n bucket capacity exceeded");

}

else

{

for(j=0;;++j)

Page 28: Network lap pgms 7th semester

{

p_sz=packets[i];

p_sz_rm+=p_sz;

printf("\nnew incoming packet size %d",p_sz);

printf("\nbyte-transmissions left:%d",p_sz_rm);

p_time=t_rand(5)*10;

printf("\n next packet will come at %d",p_time);

for(clk=0;clk<=p_time;clk+=1)

{

printf("\n time left:%d",p_time-clk);

sleep(1);

if(p_sz_rm>=o_rate)

{

Page 29: Network lap pgms 7th semester

printf("\n%d bytes transmitted",o_rate);

p_sz_rm-=o_rate;

printf("\n bytes remaining:%d",p_sz_rm);

}

else

printf("\nno packets to transmit!!");

}

if(p_sz_rm!=0)

flag=1;

break;

}

}

}

return(0);

}

Page 30: Network lap pgms 7th semester

8. RSA

#include<stdio.h>

#include<string.h>

#include<math.h>

int mul(unsigned int x,unsigned int y,unsigned int n)

{

unsigned long int k=1;

int j;

for(j=1;j<=y;j++)

k=(k*x)%n;

return(unsigned int)k;

}

int main()

Page 31: Network lap pgms 7th semester

{

int i;

char msg[100];

unsigned int pt[100],ct[100],n,d,e;

printf("enter msg \n");

scanf("%[^\n]",&msg);

for(i=0;i<strlen(msg);i++)

{

pt[i]=msg[i];

}

n=253;

d=17;

Page 32: Network lap pgms 7th semester

e=13;

for(i=0;i<strlen(msg);i++)

{

ct[i]=mul(pt[i],e,n);

}

printf("\n Cipher Text=");

for(i=0;i<strlen(msg);i++)

{

printf("%d",ct[i]);

}

for(i=0;i<strlen(msg);i++)

{

pt[i]=mul(ct[i],d,n);

Page 33: Network lap pgms 7th semester

}

printf("\n Plain Text=");

for(i=0;i<strlen(msg);i++)

{

printf("%c",pt[i]);

}

printf("\n");

}

Page 34: Network lap pgms 7th semester

9. TCP client

#include<stdio.h>

#include<sys/types.h>

#include<sys/socket.h>

#include<netinet/in.h>

#include<netdb.h>

#include<string.h>

int main(int argc,char *argv[])

{

int sockfd,newsockfd,portno,len,n;

char buffer[256],c[20000];

struct sockaddr_in serv,cli;

FILE *fd;

Page 35: Network lap pgms 7th semester

if(argc<2)

{

printf("error :no port no\n usage:\n ./client portnumber\n ex:./client 7777\n");

exit(1);

}

sockfd=socket(AF_INET , SOCK_STREAM,0);

bzero((char *)&serv,sizeof(serv));

portno=atoi(argv[1]);

serv.sin_family=AF_INET;

serv.sin_port=htons(portno);

if(connect(sockfd,(struct sockaddr *)&serv,sizeof(serv))<0)

{

printf("server not responding.. \n\n\n\t i am to terminate.\n");

Page 36: Network lap pgms 7th semester

exit(1);

}

printf("enter the file with complete path\n");

scanf("%s",&buffer);

if(write(sockfd,buffer,strlen(buffer))<0)

printf("error writing to sock...");

bzero(c,2000);

printf(" reading......\n...\n");

if(read(sockfd,c,1999)<0)

printf("error:read error..\n");

printf("client :displaying content of %s\n....\n",buffer);

fputs(c,stdout);

printf("\n....\n");

return 0;

}

Page 37: Network lap pgms 7th semester

10. TCP server

#include<stdio.h>

#include<sys/types.h>

#include<sys/socket.h>

#include<netinet/in.h>

#include<netdb.h>

int main(int argc ,char *argv[])

{

int sockfd,newsockfd,portno,len,n;

char buffer[256],c[2000],cc[20000];

struct sockaddr_in serv,cli;

FILE *fd;

if(argc<2)

{

Page 38: Network lap pgms 7th semester

printf(" error: no port no\n usage:\n ./server port num \n");

exit(1);

}

sockfd=socket(AF_INET,SOCK_STREAM,0);

portno=atoi(argv[1]);

serv.sin_family=AF_INET;

serv.sin_addr.s_addr=INADDR_ANY;

serv.sin_port=htons(portno);

bind(sockfd,(struct sockaddr *)&serv,sizeof(serv));

listen(sockfd,10);

len=sizeof(cli);

printf("server:\n waiting for connection..");

newsockfd=accept(sockfd,(struct sockaddr *)&cli,&len);

Page 39: Network lap pgms 7th semester

bzero(buffer,255);

n=read(newsockfd,buffer,255);

printf("\n server recv:%s\n",buffer);

if((fd=fopen(buffer,"r"))!=NULL)

{

printf("server:%s found \n opening and reading...\n",buffer);

printf("reading....\n.....reading complete");

fgets(cc,2000,fd);

while(!feof(fd))

{

fgets(c,2000,fd);

strcat(cc,c);

}

Page 40: Network lap pgms 7th semester

n=write(newsockfd,cc,strlen(cc));

if(n<0)

printf("error writing to socket..");

printf("\n transfer complete.\n");

}

else

{

printf("\n server:file not found!\n");

n=write(newsockfd,"file not found!",15);

if(n<0)

printf("error: writing to socket..");

}

return 0;

}