CN
CN
#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];
scanf("%d",&count);
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;
}}
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];
// selective repeat
#include <stdio.h>
#include <stdlib.h>
#define WS 5
#define N 21
if(rand()%3 == 0)
else
return correctAck;
int main()
int window[WS];
int windowStart=1;
while(windowStart<=N)
int i;
do
if(window[i]!=0)
if(ack!=-1)
window[ack]=0;
if(window[i]!=0) break;
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);
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;
}