Вы находитесь на странице: 1из 15

COMPUTER NETWORKS LABS EXECUTABLE PROGS

PROG 1 CRC
--------------------------------------------------------------------------------
#include<stdio.h>
int a[100],b[100],i,j,k,len,count=0;
int gp[]={1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1};
int main()
{
void div();
system("clear");
printf("\n enter the length of the data frame\n");
scanf("%d",&len);
printf("enter the message:\n");
for(i=0;i<len;i++)
scanf("%d",&a[i]);
for(i=0;i<16;i++)
a[len++]=0;
for(i=0;i<len;i++)
b[i]=a[i];
k=len-16;
div();
for(i=0;i<len;i++)
b[i]=b[i]^a[i];
printf("\n data to be transmitted:\n");
for(i=0;i<len;i++)
printf("%2d",b[i]);
printf("\n enter the recieved data\n");
for(i=0;i<len;i++)
scanf("%d",&a[i]);
for(i=0;i<k;i++)
{
if(a[i]!=b[i])
{
printf("error is in the %d th bit",i+1);
div();
goto END;
}
}
div();
for(i=0;i<len;i++)
if(a[i]!=0)
{
printf("\nERROR in recieved data\n");
printf("ERROR is in %d th bit",i+1);
goto END;
}
printf("data recieved is ERROR FREE");
END:printf("\n remainder is :\n");
for(i=(len-16);i<len;i++)
printf("%d",a[i]);
printf("\n");
}
void div()
{
for(i=0;i<k;i++)
{
if(a[i]==gp[0])
{
for(j=i;j<17+i;j++)
a[j]=a[j]^gp[count++];
}
count=0;
}
}
--------------------------------------------------------------------------------
PROG 2 FRAME SORTING
#include<stdio.h>
#include<string.h>

int count=0,i,j,total,size,num,tsize;
char val[100];
void frames();
void trans();
void sort();
FILE *fd;

struct frame
{
int seq;
int len;
char data[20];
int flag;
}n[20],m[20],temp;

int main()
{
printf("\nEnter The Data :");
scanf("%s",val);
tsize=strlen(val);
frames();
trans();
sort();
}

void frames()
{
int ch;
total=0;
printf("\nSegmented Frames and Transmiting order at Sender:\n");
while(total<tsize)
{
n[count].seq=count+1;
size=rand()%10+1;
n[count].len=size;
n[count].flag=0;
j=0;
if((total+size)<tsize)
{
for(i=total,j=0;i<total+size,j<size;i++,j++)
n[count].data[j]=val[i];
n[count].data[j]='\0';
}
else
{
n[count].len=tsize-total;
j=0;
while(total<tsize)
{
n[count].data[j++]=val[total];
total++;
}
n[count].data[j]='\0';
}
total+=size;
count++;
}
printf("\nFSeq No. FLen Flag FData\n");
for(i=0;i<count;i++)
{
printf(" %d\t %d\t%d\t",n[i].seq,
n[i].len,n[i].flag);
for(j=0;j<n[i].len;j++)
printf("%c",n[i].data[j]);
printf("\n");
}
num=count;
printf("\nEnter 1/0 to countinue :");
scanf("%d",&ch);
if(ch==0)
exit(0);
}

void trans()
{
int ch;
count=0;
printf("\nBegins :\n");
while(count<num)
{
i=rand()%num;
if(n[i].flag==0)
m[count++]=n[i];
n[i].flag=1;
}
printf("\nThe Order of frames Received at Receiving 1Terminal :\n");
printf("\nFSeq No. FLen Flag FData\n");
for(i=0;i<count;i++)
{
printf(" %d\t %d\t%d\t",m[i].seq,
m[i].len,m[i].flag);
for(j=0;j<m[i].len;j++)
printf("%c",m[i].data[j]);
printf("\n");
}
printf("\nTotal No. of frames: %d",count);
printf("\nEnter 1/0 to countinue :");
scanf("%d",&ch);
if(ch==0)
exit(0);
}

void sort()
{int k=0;
int c[100];
for(i=0;i<count;i++)
for(j=i+1;j<count;j++)
if(m[i].seq>m[j].seq)
{
temp=m[i];
m[i]=m[j];
m[j]=temp;
}
printf("\nSorted Frames at Receiving Terminal :\n");
printf("\nFSeq No. FLen Flag FData\n");
for(i=0;i<count;i++)
{
printf(" %d\t %d\t%d\t",m[i].seq,
m[i].len,m[i].flag);
for(j=0;j<m[i].len;j++)
{ printf("%c",m[i].data[j]);
c[k++]=m[i].data[j];
}
printf("\n");
}
fd=fopen("text.txt","w");
for(i=0;i<k;i++)
fprintf(fd,"%c",c[i]);
}

--------------------------------------------------------------------------------
PRG 3 DISTANCE VECTOR ALGO.
--------------------------------------------------------------------------------
----------------------------------------------------------------------------
#include<stdio.h>
#include<stdlib.h>
void rout_table();
int d[10][10],via[10][10];
int i,j,k,l,m,n,g[10][10],temp[10][10],ch,cost;
int main()
{
char ll,mm;
system("clear");
printf("\nenter the value of no. of nodes\n");
scanf("%d",&n);
/*********************************************
for(i=0; i<n; i++)
{
printf("enter the route for %D\n", i+1);
for(j=0; j<n; j++)
{
scanf("%d",&g[i][j]);
if(g[i][j]!=999)
d[i][j]=1;
}
}
***************************************************/
rout_table();
for(i=0; i<n; i++)
for(j=0; j<n; j++)
temp[i][j]=g[i][j];
for(i=0; i<n; i++)
for(j=0; j<n; j++)
via[i][j]=i;
while(1)
{
for(i=0; i<n; i++)
for(j=0; j<n; j++)
if(d[i][j])
for(k=0; k<n; k++)
if(g[i][j]+g[j][k]<g[i][k])
{
g[i][k]=g[i][j]+g[j][k];
via[i][k]=j;
}
for(i=0; i<n; i++)
{
printf("\ntable for router %c\n",i+97);
for(j=0; j<n; j++)
printf("%c::%d via %c\n", j+97, g[i][j], via[i][j]+97);
sleep(3);
}
for(i=0; i<n; i++)
for(j=0; j<n; j++)
g[i][j]=temp[i][j];
printf("\n do u want to change the cost(1/0) \n");
scanf("%d",&ch);
if(ch==1)
{
printf("\nenter the vertices which u want to change the cost\n");
scanf("%d %d",&l,&m);
printf("enter the cost\n");
scanf("%d",&cost);
g[l-1][m-1]=cost;
g[m-1][l-1]=cost;
for(i=0; i<n; i++)
for(j=0; j<n; j++)
temp[i][j]=g[i][j];
continue;
}
else
break;
}
}
void rout_table()
{
printf("\n enter the routing table:\n");
printf("\t|");
for(i=1;i<=n; i++)
printf("%c\t",i+96);
printf("\n");
for(i=0; i<=n; i++)
printf("--------------");
printf("\n");
for(i=0; i<n; i++)
{
printf("%c |",i+97);
for(j=0; j<n; j++)
{
scanf("%d",&g[i][j]);
if(g[i][j]!=999)
d[i][j]=1;
}
}
}

--------------------------------------------------------------------------------
PRG 4 CLIENT SERVER SOCKET PRG
--------------------------------------------------------------------------------
----------------------------------------------------------------------------
SERVER
#include<stdio.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<fcntl.h>
#include<string.h>
#define SERV_TCP_PORT 6880
#define SERV_HOST_ADDR "127.0.0.1"
int main()
{
int sockfd,newsockfd,clilen;
struct sockaddr_in cli_addr,serv_addr;
char filename[25],buf[1000];
int n,m=0;
int fd;
if((sockfd=socket(AF_INET,SOCK_STREAM,0))<0)
printf("server:cant open stream socket\n");
else
printf("server:stream socket opened successfully\n");
serv_addr.sin_family=AF_INET;
serv_addr.sin_addr.s_addr=htonl(INADDR_ANY);
serv_addr.sin_port=htons(SERV_TCP_PORT);
if((bind(sockfd,(struct sockaddr*)
&serv_addr,sizeof(serv_addr)))<0)
printf("server:cant bind local address\n");
else
printf("server:bound to local address\n");
listen(sockfd,5);
printf("\n SERVER:waiting for client...\n");
for(;;)
{
clilen=sizeof(cli_addr);
newsockfd=accept(sockfd,(struct sockaddr*)&cli_addr,&clilen);
if(newsockfd<0)
printf("server:accept error\n");
else
printf("server:accepted \n");
n=read(newsockfd,filename,25);
filename[n]='\0';
printf("\n SERVER:%s is found and ready to transfer\n",filename);
fd=open(filename,O_RDONLY);
n=read(fd,buf,1000);
buf[n]='\0';
write(newsockfd,buf,n);
printf("\n transfer successfully\n");
close(newsockfd);
exit(0);
}
}
--------------------------------------------------------------------------------
CLIENT
#include<stdio.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<fcntl.h>
#include<string.h>
#define SERV_TCP_PORT 6880
#define SERV_HOST_ADDR "127.0.0.1"

//#include"inet.h"

int main()
{
int sockfd;
struct sockaddr_in serv_addr,cli_addr;
char filename[100],buf[1000];
int n;
serv_addr.sin_family=AF_INET;
serv_addr.sin_addr.s_addr=inet_addr(SERV_HOST_ADDR);
serv_addr.sin_port=htons(SERV_TCP_PORT);
if((sockfd=socket(AF_INET,SOCK_STREAM,0))<0)
printf("client:cant open stream socket\n");
else
printf("client:stream socket opened successfully\n");
if(connect(sockfd,(struct sockaddr*)&serv_addr,sizeof(serv_addr))<0)
printf("client:cant connect to server\n");
else
printf("client:connected to server successfully\n");
printf("\n enter the file name to be displayed");
scanf("%s",filename);
write(sockfd,filename,strlen(filename));
printf("\n filename transferred to server\n");
n=read(sockfd,buf,1000);
if(n<0)
printf("\n error reading from socket");
printf("\n client:displaying file content of %s\n",filename);
fputs(buf,stdout);
close(sockfd);
exit(0);
}
--------------------------------------------------------------------------------
PRG 5 FIFO
--------------------------------------------------------------------------------
FSERVER

#include<stdio.h>
#include<fcntl.h>
#include<stdlib.h>
#include<string.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<unistd.h>
int main()
{
char filename[200],buf[300],buf1[300];
int num,num2,n,filesize,fl,fd,fd2;

mknod("fifo1",S_IFIFO | 0666,0);
mknod("fifo2",S_IFIFO | 0666,0);

printf("\n Server Online\n");


fd=open("fifo1",O_RDONLY);
printf("Client Online! Waiting for request...\n\n");
while(1)
{
num = read(fd,filename,100);
filename[num]='\0';
fl=open(filename,O_RDONLY);
printf("\n Sever: %s is found!\n transferring the contents\n",filename);
filesize=lseek(fl,0,2);
printf("\n File size is %d\n",filesize);
lseek(fl,0,0);
n=read(fl,buf1,filesize);
buf1[n]='\0';
fd2=open("fifo2",O_WRONLY);
write(fd2,buf1,strlen(buf1));
printf("\n SERVER :Transfer completed\n");
exit(1);
}
unlink("fifo1");
unlink("fifo2");
}
--------------------------------------------------------------------------------
FCLIENT
#include<stdio.h>
#include<fcntl.h>
#include<string.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<unistd.h>
int main()
{
char filename[300],buf[300];
int num,num2,fl,fd,fd2;
mknod("fifo1",S_IFIFO | 0666,0);
mknod("fifo2",S_IFIFO | 0666,0);
fd=open("fifo1",O_WRONLY);
printf("CLient Online! \n CLIENT enter the path...\n\n");
scanf("%s",filename);
write(fd,filename,strlen(filename));
printf("\n waiting for reply...\n");
fd2=open("fifo2",O_RDONLY);
num2=read(fd2,buf,300);
buf[num2]='\0';
printf("\n File received ..the contents are...\n");
fputs(buf,stdout);
unlink("fifo1");
unlink("fifo2");
exit(1);
}
-------------------------------------------------------------------------------
PRG 6 RSA ALGO.
#include<math.h>

#include<stdlib.h>

#include<stdio.h>

//Function To Compute gcd Of Two Numbers.

int gcd(long m,long n)

while(n!=0)

long r=m%n;

m=n;

n=r;

return m;

//Function To Perform RSA

int rsa(char message[])

long p=0,q=0,n=0,e=0,d=0,phi=0;

long nummes[100]={0};

long encrypted[100]={0},decrypted[100]={0};
long i=0,j=0,nofelem=0;

/*Step 1*/

printf("\nenter value of p and q\n");

scanf("%d%d",&p,&q);

/*Step 2*/

n=p*q;

/*Step 3*/

phi=(p-1)*(q-1);

/*Step 4*/

for(i=2;i<phi;i++)

if(gcd(i,phi)==1) break;

e=i;

/*Step 5*/

for(i=2;i<phi;i++)

if((e*i-1)%phi==0)break;

d=i;

/*Step 6*/

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

nummes[i]=message[i]-96;

nofelem=strlen(message);

//Networks Lab Part B

//Dept. Of CSE/ISE 22

/*Step 7*/

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

encrypted[i]=1;

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

encrypted[i] =

(encrypted[i]*nummes[i])%n;
}

printf("\n Encrypted message\n");

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

printf(" %ld ",encrypted[i]);

printf("%c",(char)(encrypted[i])+96);

/*Step 8*/

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

decrypted[i]=1;

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

decrypted[i]=(decrypted[i]*encrypted[i])%n;

printf("\n Decrypted message\n ");

for(i=0;i<nofelem;i++) printf("%c",(char)(decrypted[i]+96));

return 0;

int main()

char msg[100];
printf("Enter The Message To Be Encrypted\n");

scanf("%s",msg);

rsa(msg);

--------------------------------------------------------------------------------
PRG 7 HAMMING CODE GENERATION
--------------------------------------------------------------------------------
#include<stdio.h>
#include<stdlib.h>
int mm[30];
int main()
{
int b[10],n,k=0,i,m,s[10],j=0,flag=0,l,len;
int ll=1,kk=0,jj=0;
int a[4][8]={{0,0,0,0,0,0,0,0},
{0,1,0,1,1,1,0,0},
{0,1,1,0,1,0,1,0},
{0,0,1,1,1,0,0,1}};
char mess[40];
system("clear");
printf("Enter The Message:\n");
scanf("%s",&mess);
len=strlen(mess);
for(i=0;i<len;i++)
{
k=mess[i];
k%=16;
while(k!=0)
{
mm[jj++]=k%2;
k=k/2;
}
while(jj%4!=0)
mm[jj++]=0;
}
k=0;
while(kk<jj)
{
do
{
b[ll++]=mm[kk++];
}while(kk%4!=0);
ll=1;
b[5]=(b[1]+b[3]+b[4])%2;
b[6]=(b[1]+b[2]+b[4])%2;
b[7]=(b[2]+b[3]+b[4])%2;
printf("\n CodeWord Of %c\n",mess[k]);
for(i=1;i<=7;i++)
printf("%d",b[i]);
printf("\n");
printf("Enter The Codeword recevied by recevier\n");
for(i=1;i<=7;i++)
scanf("%d",&b[i]);
b[0]=0;
for(m=0;m<=3;m++)
s[m]=0;
m=0;
for(i=0;i<=3;i++)
{
for(j=0;j<=7;j++)
{
s[m]=s[m]+(a[i][j]*b[j]);
s[m]=s[m]%2;
}
m++;
}
for(i=1;i<=3;i++)
printf("%d",s[i]);
printf("\n");
for(i=1;i<=7;i++)
{
for(j=1;j<=3;j++)
{
if(s[j]==a[j][i])
flag=1;
else
{
flag=0;
break;
}
}
if(flag)
{
printf("Error Is At %d\n",i);
if(b[i])
b[i]=0;
else
b[i]=1;
}
}
printf("Corrected CodeWord For %c \n",mess[k]);
for(i=1;i<=7;i++)
printf("%d",b[i]);
printf("\n");
k++;
}
}

--------------------------------------------------------------------------------
PRG 8 LEAKY BUCKET ALGO.
--------------------------------------------------------------------------------
#include<stdio.h> fg
#include<string.h>

struct pack
{
int seq;
char text[20];
}p[100];

int at[10],q[10],c,clk,qs,fp=1,rp,pi=1,np=0,in;

int main()
{
int n_it=0,i,j=0,r,n;
char msg[100];
printf("\nEnter The Message :");
fflush(stdin);
fflush(stdout);
scanf("%s",msg);
fflush(stdin);
printf("\nEnter The Q Size :");
scanf("%d",&qs);
n_it=strlen(msg)/5;
if(strlen(msg)%5)
n_it++;

while(n_it!=0)
{
np++;
p[np].seq=np;
for(i=0;i<5;i++)
p[np].text[i]=msg[j++];
p[np].text[i]='\0';
printf("%d %s",np,p[np].text);
n_it--;
}

display();
at[0]=1;
for(i=1;i<np;i++)
{
n=rand()%6;
at[i]=at[i-1]+n;
}
i=0;

while(clk<((5*np)+1)||(in<np))
{
sleep(2);
printf("\nClock :%d\n",clk);
if(clk==at[i])
{
i++;
insert();
}
if(clk%5==0)
del();
clk++;

}
printf("\nDone");
}

del()
{
if(c==0)
{
printf("\nNo Packets To Delete\n");
return;
}
printf("\nDeletion-->%d--> %s\n",p[q[fp]].seq,p[q[fp]].text);
fp=(fp+1)%(qs+1);
c--;
}
insert()
{
in++;
if(c==qs)
{
printf("\nBucket Overflow\n");
printf("Packet Lost is-->%d-->%s\n",pi,p[pi].text);
pi++;
return;
}
rp=(rp+1)%(qs+1);
q[rp]=pi++;
printf("\nInsertion-->%d-->%s\n",p[q[rp]].seq,p[q[rp]].text);
c++;
}

display()
{
int i;
printf("\nFragmented Pckets :\n");
for(i=1;i<=np;i++)
printf("\n%d--->%s\n",p[i].seq,p[i].text);
}

Вам также может понравиться