Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- AIM – To implement sliding window protocol in noisy channels
- CODE –
- #include<stdio.h>
- #include<string.h>
- #include<stdlib.h>
- struct Packet{
- int data;
- int seq;
- int rand;
- };
- main(){
- int win,seqmax,data;
- printf("Enter the max sequence number starting from zero : ");
- scanf("%d",&seqmax);
- win = seqmax-1;
- printf("Enter the number of packets to be sent : ");
- scanf("%d",&data);
- Packet sd[data];
- Packet rv[win];
- for(int i = 0 ; i < data ; i++){
- sd[i].data = i;
- sd[i].seq = i%seqmax;
- }
- int i,j;
- int sf,sn,rn;
- sf = rn = 0;
- while(rn < data-win){
- //Sender side
- printf("Packets sent (seqnum) : ");
- sn = sf;
- for(i = sf ; i < win+sf ; i++){
- printf("%d, ",sd[i].seq);
- }
- sn += win;
- printf("\n");
- //Network noise generation (randomize packets n lose them)
- for(i = sf ; i < win+sf ; i++){
- int r = (rand()%win) + sf;
- rv[i-sf] = sd[r];
- rv[i-sf].rand = rand()%10;
- }
- //Reciever Side
- printf("Packets Recieved : \n");
- for(i = 0 ; i < win ; i++){
- printf("\t");
- if(rv[i].rand > 3){
- printf("%d : ",rv[i].seq);
- if(rv[i].seq == sd[rn].seq){
- rn++;
- printf("Accepted \n");
- }
- else{
- printf("Rejected \n");
- }
- }
- }
- printf("ACK sent with %d \n",sd[rn].seq);
- //Network Noise
- int k = rand()%10;
- //Sender side
- if(k > 3){
- printf("ACK recieved for packet %d \n",sd[rn].seq);
- sf = rn;
- }
- else{
- printf("ACK lost... Timeout \n");
- }
- }
- }
- OUTPUT –
- EXP - 2
- AIM – To implement a TCP/IP based chat application
- SERVER CODE –
- //server
- #include<sys/types.h>
- #include<sys/socket.h>
- #include<netinet/in.h>
- #include<arpa/inet.h>
- #include<stdio.h>
- #include<stdlib.h>
- #include<unistd.h>
- #include<errno.h>
- #include<string.h>
- int main(int argc, char *argv[]){
- int sockfd,newsockfd,clilen;
- int port,n;
- char buffer[256];
- struct sockaddr_in serv_addr,cli_addr;
- if(argc < 2){
- printf("No port provided!");
- exit(1);
- }
- sockfd = socket(AF_INET,SOCK_STREAM,0);
- if(sockfd < 0){
- perror("Error during socet creation!");
- exit(2);
- }
- bzero((char*) &serv_addr, sizeof(serv_addr));
- port = atoi(argv[1]);
- serv_addr.sin_family = AF_INET;
- serv_addr.sin_addr.s_addr = INADDR_ANY;
- serv_addr.sin_port = htons(port);
- if(bind(sockfd,(struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0){
- perror("Error during binding!");
- exit(3);
- }
- listen(sockfd,5);
- clilen = sizeof(cli_addr);
- newsockfd = accept(sockfd,(struct sockaddr *) &cli_addr, &clilen);
- if(newsockfd < 0){
- perror("Error on accept!");
- exit(4);
- }
- do{
- bzero(buffer,256);
- n = read(newsockfd,buffer,255);
- if(n < 0){
- perror("Error reading!");
- exit(5);
- }
- printf("Message is %s \n", buffer);
- bzero(buffer,256);
- fgets(buffer,255,stdin);
- n = write(newsockfd,buffer,255);
- if(n < 0){
- perror("Error in writing");
- exit(6);
- }
- }while(1);
- return 0;
- }
- CLIENT CODE –
- //client
- #include<sys/types.h>
- #include<sys/socket.h>
- #include<netinet/in.h>
- #include<arpa/inet.h>
- #include<stdio.h>
- #include<stdlib.h>
- #include<unistd.h>
- #include<errno.h>
- #include<string.h>
- #include<netdb.h>
- int main(int argc, char *argv[]){
- int sockfd,port,n;
- struct sockaddr_in serv_addr;
- struct hostent *server;
- char buffer[256];
- if(argc < 3){
- printf("usage %s hostname port\n",argv[0]);
- exit(1);
- }
- port = atoi(argv[2]);
- sockfd = socket(AF_INET, SOCK_STREAM, 0);
- if(sockfd < 0){
- perror("Error during socket creation!");
- exit(2);
- }
- server = gethostbyname(argv[1]);
- if(server == NULL){
- printf("No such host! \n");
- exit(3);
- }
- 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(port);
- if(connect(sockfd,&serv_addr,sizeof(serv_addr)) < 0){
- perror("Error connecting!");
- exit(4);
- }
- do{
- printf("Enter message : ");
- bzero(buffer,256);
- fgets(buffer,255,stdin);
- n = write(sockfd,buffer,strlen(buffer));
- if(n < 0){
- perror("Error in Writing");
- exit(5);
- }
- bzero(buffer,256);
- n = read(sockfd,buffer,255);
- if(n < 0){
- perror("Error Reading");
- exit(6);
- }
- printf("%s \n",buffer);
- }while(1);
- return 0;
- }
- OUTPUT –
- EXP-3
- AIM – To transfer a file using TCP/IP
- SERVER CODE –
- //server
- #include<sys/types.h>
- #include<sys/socket.h>
- #include<netinet/in.h>
- #include<arpa/inet.h>
- #include<stdio.h>
- #include<stdlib.h>
- #include<unistd.h>
- #include<errno.h>
- #include<string.h>
- int main(int argc, char *argv[]){
- int sockfd,newsockfd,clilen;
- int port,n;
- char buffer[1024];
- struct sockaddr_in serv_addr,cli_addr;
- if(argc < 2){
- printf("No port provided!");
- exit(1);
- }
- sockfd = socket(AF_INET,SOCK_STREAM,0);
- if(sockfd < 0){
- perror("Error during socet creation!");
- exit(2);
- }
- bzero((char*) &serv_addr, sizeof(serv_addr));
- port = atoi(argv[1]);
- serv_addr.sin_family = AF_INET;
- serv_addr.sin_addr.s_addr = INADDR_ANY;
- serv_addr.sin_port = htons(port);
- if(bind(sockfd,(struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0){
- perror("Error during binding!");
- exit(3);
- }
- listen(sockfd,5);
- clilen = sizeof(cli_addr);
- newsockfd = accept(sockfd,(struct sockaddr *) &cli_addr, &clilen);
- if(newsockfd < 0){
- perror("Error on accept!");
- exit(4);
- }
- //Full setup done.... server listening
- FILE *fptr;
- bzero(buffer,1024);
- fptr = fopen("filemsg.txt","r");
- if(fptr == NULL){
- printf("File open error!");
- exit(5);
- }
- fscanf(fptr,"%[^\n]",&buffer);
- printf("%s \n",buffer);
- n = write(newsockfd,buffer,1023);
- if(n < 0){
- perror("Error in writing");
- exit(6);
- }
- printf("String sent : %s \n",buffer);
- printf("File sent!! \n");
- fclose(fptr);
- close(newsockfd);
- //Process ends
- return 0;
- }
- CLIENT CODE –
- // client
- #include<sys/types.h>
- #include<sys/socket.h>
- #include<netinet/in.h>
- #include<arpa/inet.h>
- #include<stdio.h>
- #include<stdlib.h>
- #include<unistd.h>
- #include<errno.h>
- #include<string.h>
- #include<netdb.h>
- int main(int argc, char *argv[]){
- int sockfd,port,n;
- struct sockaddr_in serv_addr;
- struct hostent *server;
- char buffer[1024];
- if(argc < 3){
- printf("usage %s hostname port\n",argv[0]);
- exit(1);
- }
- port = atoi(argv[2]);
- sockfd = socket(AF_INET, SOCK_STREAM, 0);
- if(sockfd < 0){
- perror("Error during socket creation!");
- exit(2);
- }
- server = gethostbyname(argv[1]);
- if(server == NULL){
- printf("No such host! \n");
- exit(3);
- }
- 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(port);
- if(connect(sockfd,&serv_addr,sizeof(serv_addr)) < 0){
- perror("Error connecting!");
- exit(4);
- }
- //Full connection done
- FILE *fptr;
- fptr = fopen("file1.txt","a");
- if(fptr == NULL){
- printf("File error");
- exit(5);
- }
- bzero(buffer,1024);
- n = read(sockfd,buffer,1023);
- if(n < 0){
- perror("Error reading");
- exit(5);
- }
- fprintf(fptr,"%s",buffer);
- printf("File recieved!!\n");
- fclose(fptr);
- //Process end
- return 0;
- }
- OUTPUT –
- EXP - 4
- AIM – To implement a client server authentication using TCP/IP
- SERVER CODE –
- //server
- #include<sys/types.h>
- #include<sys/socket.h>
- #include<netinet/in.h>
- #include<arpa/inet.h>
- #include<stdio.h>
- #include<stdlib.h>
- #include<unistd.h>
- #include<errno.h>
- #include<string.h>
- int main(int argc, char *argv[]){
- int sockfd,newsockfd,clilen;
- int port,n;
- char actuser[256];
- char actpass[256];
- char user[256];
- char pass[256];
- struct sockaddr_in serv_addr,cli_addr;
- if(argc < 2){
- printf("No port provided!");
- exit(1);
- }
- sockfd = socket(AF_INET,SOCK_STREAM,0);
- if(sockfd < 0){
- perror("Error during socket creation!");
- exit(2);
- }
- bzero((char*) &serv_addr, sizeof(serv_addr));
- port = atoi(argv[1]);
- serv_addr.sin_family = AF_INET;
- serv_addr.sin_addr.s_addr = INADDR_ANY;
- serv_addr.sin_port = htons(port);
- if(bind(sockfd,(struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0){
- perror("Error during binding!");
- exit(3);
- }
- listen(sockfd,5);
- clilen = sizeof(cli_addr);
- newsockfd = accept(sockfd,(struct sockaddr *) &cli_addr, &clilen);
- if(newsockfd < 0){
- perror("Error on accept!");
- exit(4);
- }
- printf("Enter actual username : ");
- scanf("%s",&actuser);
- printf("Enter actual password : ");
- scanf("%s",&actpass);
- n = write(newsockfd,"Enter username : ",17);
- n = read(newsockfd,user,255);
- user[strlen(user)] = '\0';
- if(strcmp(user,actuser) == 10){
- n = write(newsockfd,"Enter password : ",17);
- n = read(newsockfd,pass,255);
- pass[strlen(pass)] = '\0';
- if(strcmp(pass,actpass) == 10){
- n = write(newsockfd,"Accepted!",9);
- printf("ACCEPT \n");
- }
- else{
- n = write(newsockfd,"Rejected!",9);
- printf("REJECT \n");
- close(newsockfd);
- }
- }
- else{
- n = write(newsockfd,"Rejected!",9);
- printf("REJECT\n");
- close(newsockfd);
- }
- return 0;
- }
- CLIENT CODE –
- //client
- #include<stdio.h>
- #include<stdlib.h>
- #include<sys/types.h>
- #include<sys/socket.h>
- #include<netinet/in.h>
- #include<netdb.h>
- int main(int argc, char *argv[]){
- int sockfd,port,n;
- struct sockaddr_in serv_addr;
- struct hostent *server;
- char buffer[256];
- char user[256];
- char pass[256];
- if(argc < 3){
- printf("usage %s hostname port\n",argv[0]);
- exit(1);
- }
- port = atoi(argv[2]);
- sockfd = socket(AF_INET, SOCK_STREAM, 0);
- if(sockfd < 0){
- perror("Error during socket creation!");
- exit(2);
- }
- server = gethostbyname(argv[1]);
- if(server == NULL){
- printf("No such host! \n");
- exit(3);
- }
- 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(port);
- if(connect(sockfd,&serv_addr,sizeof(serv_addr)) < 0){
- perror("Error connecting!");
- exit(4);
- }
- bzero(buffer,256);
- n = read(sockfd,buffer,255);
- printf("%s",buffer);
- bzero(user,256);
- fgets(user,255,stdin);
- n = write(sockfd,user,strlen(user));
- bzero(buffer,256);
- n = read(sockfd,buffer,255);
- printf("%s",buffer);
- bzero(pass,256);
- fgets(pass,255,stdin);
- n = write(sockfd,pass,strlen(pass));
- bzero(buffer,256);
- n = read(sockfd,buffer,255);
- printf("%s\n",buffer);
- return 0;
- }
- CYCLE SHEET 1
- HAMMING
- #include<stdio.h>
- int main() {
- int data[7],rec[7],i,c1,c2,c3,c;
- printf("this works for message of 4bits in size \nenter message bit one by one: ");
- scanf("%d%d%d%d",&data[0],&data[1],&data[2],&data[4]);
- data[6]=data[0]^data[2]^data[4];
- data[5]=data[0]^data[1]^data[4];
- data[3]=data[0]^data[1]^data[2];
- printf("\nthe encoded bits are given below: \n");
- for (i=0;i<7;i++) {
- printf("%d ",data[i]);
- }
- printf("\nenter the received data bits one by one: ");
- for (i=0;i<7;i++) {
- scanf("%d",&rec[i]);
- }
- c1=rec[6]^rec[4]^rec[2]^rec[0];
- c2=rec[5]^rec[4]^rec[1]^rec[0];
- c3=rec[3]^rec[2]^rec[1]^rec[0];
- c=c3*4+c2*2+c1 ;
- if(c==0) {
- printf("\ncongratulations there is no error: ");
- } else {
- printf("\nerron on the postion: %d\nthe correct message is \n",c);
- if(rec[7-c]==0)
- rec[7-c]=1; else
- rec[7-c]=0;
- for (i=0;i<7;i++) {
- printf("%d ",rec[i]);
- }
- }
- return 0;
- }
- OSI
- #include<stdio.h>
- #include<string.h>
- int main()
- {
- char temp[20],str[20];
- printf("Enter the string");
- scanf("%s",&str);
- printf("transmitter");
- strcpy(temp,str);
- printf("Application layer: ");
- strcpy(temp,"AL");
- strcat(temp,str);
- printf("%s",temp);
- printf("Presentation Layer");
- strcpy(temp,"PL");
- strcat(temp,str);
- printf("%s\nSession Layer",temp);
- strcpy(temp,"SL");
- strcat(temp,str);
- printf("%s\ntransport layer",temp);
- strcpy(temp,"TL");
- strcat(temp,str);
- printf("%s\nNetwork layer",temp);
- strcpy(temp,"NL");
- strcat(temp,str);
- printf("%s\nData Link Layer",temp);
- strcpy(temp,"DLL");
- strcat(temp,str);
- printf("%s\nReceiver",temp);
- int i;
- printf("\nData Link Layer: ");
- for(i=0;i<strlen(str);i++)
- {printf("%c",str[i]);
- }
- printf("\nNetwork layer: ");
- for(i=4;i<strlen(str);i++)
- printf("%c",str[i]);
- printf("\nTransport layer: ");
- for(i=6;i<strlen(str);i++)
- {
- printf("%c",str[i]);}
- printf("\nSession layer: ");
- for(i=8;i<strlen(str);i++)
- {
- printf("%c",str[i]);}
- printf("\nPresentation layer: ");
- for(i=10;i<strlen(str);i++)
- {
- printf("%c",str[i]);}
- printf("\nApplication layer: ");
- for(i=12;i<strlen(str);i++)
- {printf("%c",str[i]);
- }
- }
- BIT STUFFING
- #include<conio.h>
- #include<stdio.h>
- #include<string.h>
- void main() {
- int i, j,count=0,nl;
- char str[100];
- printf("enter the bit string: ");
- gets(str);
- for (i=0;i<strlen(str);i++) {
- count=0;
- for (j=i;j<=(i+5);j++) {
- if(str[j]=='1') {
- count++;
- }
- }
- if(count==6) {
- nl=strlen(str)+2;
- for (;nl>=(i+5);nl--) {
- str[nl]=str[nl-1];
- }
- str[i+5]='0';
- i=i+7;
- }
- }
- puts(str);
- getch();
- }
- Character Count
- #include<stdio.h>
- #include<string.h>
- int main()
- {
- int t[50],i,n;
- char s[50][50];
- scanf("%d",&n);
- for(i=0;i<n;i++)
- {
- scanf("%s",s[i]);
- }
- for(i=0;i<n;i++)
- t[i]=strlen(s[i]);
- printf("The transmitted data is \n");
- for(i=0;i<n;i++)
- {
- printf("%d",t[i]+1);
- printf("%s",s[i]);
- }
- }
- CHECKSUM
- #include<stdio.h>
- #include<math.h>
- int sender(int b[10],int k)
- {
- int checksum,sum=0,i;
- printf("\n****SENDER****\n");
- for(i=0;i<k;i++)
- sum+=b[i];
- printf("SUM IS: %d",sum);
- checksum=~sum;
- printf("\nSENDER's CHECKSUM IS:%d",checksum);
- return checksum;
- }
- int receiver(int c[10],int k,int scheck)
- {
- int checksum,sum=0,i;
- printf("\n\n****RECEIVER****\n");
- for(i=0;i<k;i++)
- sum+=c[i];
- printf(" RECEIVER SUM IS:%d",sum);
- sum=sum+scheck;
- checksum=~sum;
- printf("\nRECEIVER's CHECKSUM IS:%d",checksum);
- return checksum;
- }
- main()
- {
- int a[10],i,m,scheck,rcheck;
- printf("\nENTER SIZE OF THE STRING:");
- scanf("%d",&m);
- printf("\nENTER THE ELEMENTS OF THE ARRAY:");
- for(i=0;i<m;i++)
- scanf("%d",&a[i]);
- scheck=sender(a,m);
- rcheck=receiver(a,m,scheck);
- if(rcheck==0)
- printf("\n\nNO ERROR IN TRANSMISSION\n\n");
- else
- printf("\n\nERROR DETECTED");
- }
- CRC
- #include <conio.h>
- #include <string.h>
- #include<stdio.h>
- void main()
- {
- int i,j,keylen,msglen;
- char input[100], key[30],temp[30],quot[100],rem[30],key1[30];
- printf("Enter Data: ");
- gets(input);
- printf("Enter Key: ");
- gets(key);
- keylen=strlen(key);
- msglen=strlen(input);
- strcpy(key1,key);
- for(i=0;i<keylen-1;i++)
- {
- input[msglen+i]='0';
- }
- for(i=0;i<keylen;i++)
- temp[i]=input[i];
- for(i=0;i<msglen;i++)
- {
- quot[i]=temp[0];
- if(quot[i]=='0')
- for(j=0;j<keylen;j++)
- key[j]='0';
- else
- for(j=0;j<keylen;j++)
- key[j]=key1[j];
- for(j=keylen-1;j>0;j--)
- {
- if(temp[j]==key[j])
- rem[j-1]='0';
- else
- rem[j-1]='1';
- }
- rem[keylen-1]=input[i+keylen];
- strcpy(temp,rem);
- }
- strcpy(rem,temp);
- printf("\nQuotient is ");
- for(i=0;i<msglen;i++)
- printf("%c",quot[i]);
- printf("\nRemainder is ");
- for(i=0;i<keylen-1;i++)
- printf("%c",rem[i]);
- printf("\nFinal data is: ");
- for(i=0;i<msglen;i++)
- printf("%c",input[i]);
- for(i=0;i<keylen-1;i++)
- printf("%c",rem[i]);
- getch();
- }
Add Comment
Please, Sign In to add comment