0% found this document useful (0 votes)
28 views15 pages

CN

Uploaded by

riya sharma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views15 pages

CN

Uploaded by

riya sharma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

//CRC

#include<stdio.h>
#include<string.h>
#define N strlen(gen_poly)
char data[28];
char check_value[28];
char gen_poly[10];
int data_length,i,j;
void XOR(){
for(j = 1;j < N; j++)
check_value[j] = (( check_value[j] == gen_poly[j])?'0':'1');
}
void crc(){
for(i=0;i<N;i++)
check_value[i]=data[i];
do{
if(check_value[0]=='1')
XOR();
for(j=0;j<N-1;j++)
check_value[j]=check_value[j+1];
check_value[j]=data[i++];
}while(i<=data_length+N-1);
}
void receiver(){
printf("Enter the received data: ");
scanf("%s", data);
printf("\n-----------------------------\n");
printf("Data received: %s", data);
crc();
for(i=0;(i<N-1) && (check_value[i]!='1');i++);
if(i<N-1)
printf("\nError detected\n\n");
else
printf("\nNo error detected\n\n");
}

int main()
{
printf("\nEnter data to be transmitted: ");
scanf("%s",data);
printf("\n Enter the Generating polynomial: ");
scanf("%s",gen_poly);
data_length=strlen(data);
for(i=data_length;i<data_length+N-1;i++)
data[i]='0';
printf("\n----------------------------------------");
printf("\n Data padded with n-1 zeros : %s",data);
printf("\n----------------------------------------");
crc();
printf("\nCRC or Check value is : %s",check_value);
for(i=data_length;i<data_length+N-1;i++)
data[i]=check_value[i-data_length];
printf("\n----------------------------------------");
printf("\n Final data to be sent : %s",data);
printf("\n----------------------------------------\n");
receiver();
return 0;
}

// checksum

#include<stdio.h>
#include<string.h>
int main()
{
char a[20],b[20];
char sum[20],complement[20];
int i,length;
printf("Enter first binary string\n");
scanf("%[^\n]%*c", a);
printf("Enter second binary string\n");
scanf("%[^\n]%*c", b);
if(strlen(a)==strlen(b)){
length = strlen(a);
char carry='0';
for(i=length-1;i>=0;i--)
{
if(a[i]=='0' && b[i]=='0' && carry=='0')
{
sum[i]='0';
carry='0';
}
else if(a[i]=='0' && b[i]=='0' && carry=='1')
{
sum[i]='1';
carry='0';

}
else if(a[i]=='0' && b[i]=='1' && carry=='0')
{
sum[i]='1';
carry='0';
}
else if(a[i]=='0' && b[i]=='1' && carry=='1')
{
sum[i]='0';
carry='1';
}
else if(a[i]=='1' && b[i]=='0' && carry=='0')
{
sum[i]='1';
carry='0';
}
else if(a[i]=='1' && b[i]=='0' && carry=='1')
{
sum[i]='0';
carry='1';
}
else if(a[i]=='1' && b[i]=='1' && carry=='0')
{
sum[i]='0';
carry='1';
}
else if(a[i]=='1' && b[i]=='1' && carry=='1')
{
sum[i]='1';
carry='1';
}
else
break;
}
printf("\nSum=%c%s",carry,sum);
for(i=0;i<length;i++)
{
if(sum[i]=='0')
complement[i]='1';
else
complement[i]='0';
}
if(carry=='1')
carry='0';
else
carry='1';
printf("\nChecksum=%c%s",carry,complement);
}
else {
printf("\nWrong input strings");
}
}

// go back n
#include<stdio.h>
int main()
{
int windowsize,sent=0,ack,i;
printf("enter window size\n");
scanf("%d",&windowsize);
while(1)
{
for( i = 0; i < windowsize; i++)
{
printf("Frame %d has been transmitted.\n",sent);
sent++;
if(sent == windowsize)
break;
}
printf("\nPlease enter the last Acknowledgement received.\n");
scanf("%d",&ack);

if(ack == windowsize)
break;
else
sent = ack;
}
return 0;
}

// csma-cd
#include<stdio.h>
#include<stdlib.h>
#include<pthread.h>
#include<string.h>
#include<sys/time.h>
#include <unistd.h>
int x=0;
void capture()
{
exit(0);
}
int get()
{
return x;
}
void put()
{
x++;
}
void node(char *p)
{
int name;
int seq1,seq2,i=0;
long int t;
struct timeval tv;
struct timezone tz;
name=atoi(p);
while(1)
{
seq1=get();
seq2=get();
if(seq1==seq2)
{
put();
seq1=get();
printf("station %d transmitting frame %d\n",name,++i);
sleep(3);
seq2=get();
if(seq1!=seq2)
{
printf("station %d collision occured %d \n",name,i--);
sleep(3);
}
else
{
printf("station %d complete %d\n",name,i);
}
}
sleep(3);
}
}
int main()
{
pthread_t t1,t2,t3;
pthread_create(&t1,0,(void *)node,"1");
pthread_create(&t2,0,(void *)node,"2");
pthread_create(&t3,0,(void *)node,"3");
while(1);
}

// ospf

#include<stdio.h>

#include<string.h>

int main()

int count,src_router,i,j,k,w,v,min;

int cost_matrix[100][100],dist[100],last[100];

int flag[100];

printf("\n Enter the no of routers");

scanf("%d",&count);

printf("\n Enter the cost matrix values:");

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

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

printf("\n%d->%d:",i,j);

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

if(cost_matrix[i][j]<0)cost_matrix[i][j]=1000;
}}

printf("\n Enter the source router:");

scanf("%d",&src_router);

for(v=0;v<count;v++)

flag[v]=0;

last[v]=src_router;

dist[v]=cost_matrix[src_router][v];

flag[src_router]=1;

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

min=1000;

for(w=0;w<count;w++)

if(!flag[w])

if(dist[w]<min)

v=w;

min=dist[w];

}}

flag[v]=1;

for(w=0;w<count;w++)

if(!flag[w])

if(min+cost_matrix[v][w]<dist[w])

{
dist[w]=min+cost_matrix[v][w];

last[w]=v;

}}

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

printf("\n%d==>%d:Path taken:%d",src_router,i,i);

w=i;

while(w!=src_router)

printf("\n<--%d",last[w]);w=last[w];

printf("\n Shortest path cost:%d",dist[i]);

// selective repeat

#include <stdio.h>

#include <stdlib.h>

#define WS 5

#define N 21

int sendToReceiver(int data, int correctAck)

printf("Reciver: received data: %d, ack: %d\n", data, correctAck);

if(rand()%3 == 0)

printf("Reciver: sending negative acknowledgemnt\n");


return -1;

else

printf("Reciver: sending positive Acknowledgement\n");

return correctAck;

int main()

int window[WS];

int windowStart=1;

while(windowStart<=N)

printf("sender: window start at: %d\n", windowStart);

int i;

for(i=0; i<WS; ++i) window[i]=windowStart+i;

do

for(i=0; i<WS && windowStart+i<=N; ++i)

if(window[i]!=0)

printf("Sender: Data Send: %d\n", windowStart+i);

int ack= sendToReceiver(windowStart+i, i);


printf("Sender: Acknowledgement Received: %d\n", ack);

if(ack!=-1)

window[ack]=0;

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

if(window[i]!=0) break;

}while(i!=WS && windowStart+i!=N+1);

windowStart+=WS;

return 0;

//calc server

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#include <string.h>
void error(const char *msg){
perror(msg);
exit(1);
}
int main(int argc,char *argv[]){
if(argc<2){
printf("Port no not provided. Program Terminated");
exit(1);
}
int sockfd,newsockfd,portno,n;
char buffer[255];
struct sockaddr_in serv_addr,cli_addr;
socklen_t clilen;
sockfd = socket(AF_INET, SOCK_STREAM,0);
if(sockfd<0){
error("Error opening Socket");
}
bzero((char *) &serv_addr,sizeof(serv_addr));
portno = atoi(argv[1]);
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = INADDR_ANY;
serv_addr.sin_port = htons(portno);

if(bind(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr)) < 0){


error("Error Connecting");
}
listen(sockfd,5);
clilen = sizeof(cli_addr);
newsockfd = accept(sockfd,(struct sockaddr *) &cli_addr,&clilen);
if(newsockfd<0){
error("Error on Accept");
}
int num1,num2,answer,choice;
S: n = write(newsockfd, "Enter number 1 : ", strlen("Enter number 1"));
if(n<0)error("Error writing to socket");
read(newsockfd,&num1,sizeof(int));
printf("Client-Number 1 is: %d\n",num1);

n = write(newsockfd, "Enter number 2 : ", strlen("Enter number 2"));


read(newsockfd,&num2,sizeof(int));
printf("Client-Number 2 is: %d\n",num2);

n = write(newsockfd, "Enter your choice : \n 1. add\n2. sub\n3. mul\n4. div\n5. Exit\n", strlen("Enter
your choice : \n 1. add\n2. sub\n3. mul\n4. div\n5. Exit\n"));
if(n<0)error("Error writing to socket");
read(newsockfd,&choice,sizeof(int));
printf("Client-choice is: %d\n",choice);
switch(choice){
case 1:
answer = num1+num2;
break;
case 2:
answer = num1-num2;
break;
case 3:
answer = num1*num2;
break;
case 4:
answer = num1/num2;
break;
case 5:
goto Q;
break;
}

write(newsockfd,&answer,sizeof(int));
if(choice != 5) goto S;
Q:close(newsockfd);
close(sockfd);

return 0;

//calc client

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#include <string.h>
#include <netdb.h>
void error(const char *msg){
perror(msg);
exit(0);
}
int main(int argc,char *argv[]){
if(argc<3){
printf("Port no not provided. Program Terminated");
exit(1);
}
int sockfd,portno,n;
char buffer[256];
struct sockaddr_in serv_addr;
struct hostent *server;
portno = atoi(argv[2]);
sockfd = socket(AF_INET, SOCK_STREAM,0);
if(sockfd<0)
error("Error opening Socket");
server = gethostbyname(argv[1]);
if(server==NULL){
printf("No such host");
}
bzero((char*)&serv_addr,sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
bcopy((char *) server->h_addr,(char *) &serv_addr.sin_addr.s_addr,server->h_length );
serv_addr.sin_port = htons(portno);
if(connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr))<0)
error("Connection Failed");
int num1,num2,answer,choice;

S:bzero(buffer,256);
n = read(sockfd,buffer,255);
if(n<0)
error("Error");
printf("Server - %s\n",buffer);
scanf("%d",&num1);
write(sockfd,&num1,sizeof(int));

bzero(buffer,256);
n = read(sockfd,buffer,255);
if(n<0)
error("Error reading from socket");
printf("Server -%s \n",buffer);
scanf("%d",&num2);
write(sockfd,&num2,sizeof(int));

bzero(buffer,256);
n = read(sockfd,buffer,255);
if(n<0)
error("Error reading from socket");
printf("Server -%s \n",buffer);
scanf("%d",&choice);
write(sockfd,&choice,sizeof(int));
if(choice==5)
goto Q;
read(sockfd,&answer,sizeof(int));
printf("The answer is %d\n",answer);
if(choice!=5)
goto S;
Q:close(sockfd);
return 0;
}
//chat server

#include<stdio.h

#include<stdlib.h>
#include<string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
void error(const char *msg){
perror(msg);
exit(1);
}
int main(int argc, char *argv[])
{
if(argc < 2){
fprintf(stderr, "Port not provided, program terminated\n");
exit(1);
}
int sockfd, newsockfd, portno;
char buffer[255];
struct sockaddr_in serv_addr , cli_addr;
socklen_t clilen;
sockfd = socket(AF_INET , SOCK_STREAM , 0);
if(sockfd < 0){
error("error opening socket");
}
bzero((char *) &serv_addr , sizeof(serv_addr));
portno = atoi(argv[1]);
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = INADDR_ANY;
serv_addr.sin_port = htons(portno);
if(bind(sockfd , (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0)
{
error("binding failed");
}
listen(sockfd, 5);
clilen = sizeof(cli_addr);
newsockfd = accept(sockfd , (struct sockaddr * ) & cli_addr , &clilen);
if(newsockfd < 0 ){
error("error on Accept");
}
while(1){
bzero(buffer,255);
int n = read(newsockfd , buffer , 255);
if(n<0){
error("error on reading");
}
printf("client : %s\n", buffer);
bzero(buffer, 255);
fgets(buffer , 255 , stdin);
n = write(newsockfd, buffer , strlen(buffer));
if(n<0) error("error on writing");
int i = strncmp("bye", buffer , 3);
if(i == 0){
break;
}
}
close(newsockfd);
close(sockfd);
return 0;
}

// chat client
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#include <string.h>
#include <netdb.h>
void error(const char *msg){
perror(msg);
exit(0);
}
int main(int argc,char *argv[]){
if(argc<3){
printf("Port no not provided. Program Terminated");
exit(1);
}
int sockfd,portno,n;
char buffer[255];
struct sockaddr_in serv_addr;
struct hostent *server;
portno = atoi(argv[2]);
sockfd = socket(AF_INET, SOCK_STREAM,0);
if(sockfd<0)
error("Error opening Socket");
server = gethostbyname(argv[1]);
if(server==NULL){
printf("No such host");
}
bzero((char*)&serv_addr,sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
bcopy((char *) server->h_addr,(char *) &serv_addr.sin_addr.s_addr,server->h_length );
serv_addr.sin_port = htons(portno);
if(connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr))<0)
error("Connection Failed");
while(1){
bzero(buffer,255);
fgets(buffer,255,stdin);
n = write(sockfd,buffer,strlen(buffer));
if(n<0)
error("Error on writing");
bzero(buffer,255);
n = read(sockfd,buffer,255);
if(n<0)
error("Error on reading");
printf("Server :%s",buffer);
int i=strncmp("Bye",buffer,3);
if(i==0)
break;
}
close(sockfd);
return 0;
}

You might also like