Академический Документы
Профессиональный Документы
Культура Документы
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);
#include<stdlib.h>
#include<stdio.h>
while(n!=0)
long r=m%n;
m=n;
n=r;
return m;
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*/
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);
//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;
}
for(i=0;i<nofelem;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;
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);
}