Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ********/*program OSI MODEL*/***************************************************
- OSI
- #include<stdio.h>
- void main()
- {
- //clrscr();
- printf(“\n \t\t ISO-OSI Model”);
- printf(“\n LAYERS Sender Side”);
- printf(“\n APPLICATION lAYER !! AH !!DATA!!”);
- sleep(1);
- printf(“\n PRESENTATION lAYER !! PH !!AH!!DATA!!”);
- sleep(1);
- printf(“\n SESSION LAYER !! SH !!PH!!AH!!DATA!!”);
- sleep(1);
- printf(“\n TRANSPORT LAYER !! TH !!SH!!PH!!AH!!DATA!!”);
- sleep(1);
- printf(“\n NETWORK LAYER !! NH !!TH!!SH!!PH!!AH!!DATA!!”);
- sleep(1);
- printf(“\n DATALINK LAYER !! DH !!NH!!TH!!SH!!PH!!AH!!DATA!! CRC !!”);
- sleep(1);
- printf(“\n PHYSICAL LAYER 100100101010101110001010010 \n”);
- sleep(1);
- printf(“\n LAYERS Recevier Side”);
- printf(“\n PHYSICAL LAYER 100100101010101110001010010 “);
- sleep(1);
- printf(“\n DATALINK LAYER !! DH !!NH!!TH!!SH!!PH!!AH!!DATA!! CRC !!”);
- sleep(1);
- printf(“\n NETWORK LAYER !! NH !!TH!!SH!!PH!!AH!!DATA!!”);
- sleep(1);
- printf(“\n TRANSPORT LAYER !! TH !!SH!!PH!!AH!!DATA!!”);
- sleep(1);
- printf(“\n SESSION LAYER !! SH !!PH!!AH!!DATA!!”);
- sleep(1);
- printf(“\n PRESENTATION lAYER !! PH !!AH!!DATA!!”);
- sleep(1);
- printf(“\n APPLICATION lAYER !! AH !!DATA!!”);
- sleep(1);
- //getch();
- }
- *********************/*PROGRAM Character Oount*/********************************
- CHARECTER COUNT
- #include<stdio.h>
- #include<conio.h>
- #include<string.h>
- void main()
- {
- int i,j,k,n,c=0,l;
- char s[20];
- clrscr();
- printf("\t enter the string \n\t");
- gets(s);
- l=strlen(s);
- printf("\t%d",l);
- printf("\n\n");
- j=0;
- printf(" \tenter the frame size: \t ");
- scanf("%d",&n);
- k=l/n;
- for(i=0;i<k;i++)
- {
- printf("\t DLESTX");
- while(j<l)
- {
- putchar(s[j]);
- c++;
- j++;
- if(c==n)
- break;
- }
- printf(" DLESTX \t");
- printf("\n\n");
- c=0;
- }
- getch();
- //PROGRAMME CHARECTER COUNT(2)
- #include <stdio.h>
- #include <string.h>
- int main()
- {
- char string[100];
- int c = 0, count[26] = {0};
- printf("Enter a string\n");
- gets(string);
- while (string[c] != '\0')
- {
- /** Considering characters from 'a' to 'z' only
- and ignoring others */
- if (string[c] >= 'a' && string[c] <= 'z')
- count[string[c]-'a']++;
- c++;
- }
- for (c = 0; c < 26; c++)
- {
- /** Printing only those characters
- whose count is at least 1 */
- if (count[c] != 0)
- printf("%c occurs %d times in the entered string.\n",c+'a',count[c]);
- }
- return 0;
- }
- ***************************CHECKSUM*********************************************
- CHECKSUM
- #include<stdio.h>
- #include<conio.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");
- getch();
- }
- *******************************CRC**********************************************
- CRC
- #include <stdio.h>
- #include <string.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]);
- }
- ********************************HAMMING CODE**********************************
- HAMMING CODE
- #include<stdio.h>
- #include<math.h>
- int main()
- {
- int a[20],b[20],c[20],d[20],i,k,m,f,n,j,r,p,x,y,z,ch,key,q,v,sum=0;
- system("clear");
- printf("\n ENTER THE LENGTH OF DATA WORD :");
- scanf("%d",&k);
- printf("\n ENTER THE DATA WORD \n");
- for(i=1; i<=k; i++){
- scanf("%d",&a[i]);
- }
- m=1;
- while((k+m+1)>=pow(2,m)){
- m++;
- }
- printf("\n Value of m is : %d",m);
- n=k+m;
- j=1; r=0;
- for(i=1; i<=n; i++){
- p=pow(2,r);
- if(i==p){
- b[i]=0;
- r++;
- }
- else{
- b[i]=a[j];
- j++;
- }
- }
- printf("\n INTERMEDIATE CODE WORD IS \n");
- for(i=1; i<=n; i++)
- printf("%d",b[i]);
- p=0;
- for(i=1; i<=m; i++)
- {
- x=pow(2,p); r=1;
- for(j=x; j<=n; j=j+(x*2)){
- for(y=j; y<(j+x); y++){
- c[r]=b[y];
- r++;
- }
- }
- z=0;
- for(y=1; y<=(r-1); y++)
- {
- if(c[y]==1) z++;
- }
- if(z%2==0)
- b[x]=0;
- else
- b[x]=1;
- for(y=1; y<=20; y++)
- c[y]=0;
- p++;
- }
- printf("\n\n THE HAMMING CODE IS \n");
- for(i=1; i<=n; i++)
- printf("%d",b[i]);
- while(1){
- printf("\n\n PRESS 1 TO ALTER A BIT 0 to EXIT \n\n");
- scanf("%d",&ch);
- if(ch==1){
- printf("\n ENTER THE BIT YOU WANT TO CHANGE \n");
- scanf("%d",&key);
- for(i=1; i<=n; i++){
- if(i==key){
- if(b[key]==1) b[key]=0;
- else b[key]=1;
- break;
- }
- }
- printf("\n THE NEW CODE IS \n\n");
- for(i=1; i<=n; i++)
- printf("%d",b[i]);
- }
- else
- break;
- }
- p=0; q=0;
- for(i=1; i<=m; i++)
- {
- x=pow(2,p); r=1;
- for(j=x; j<=n; j=j+(x*2)){
- for(y=j; y<(j+x); y++){
- c[r]=b[y];
- r++;
- }
- }
- z=0;
- for(y=1; y<=(r-1); y++)
- {
- if(c[y]==1) z++;
- }
- v=z%2;
- d[q]=v;
- sum=sum+(v*pow(2,q));
- q++;
- for(y=1; y<=20; y++)
- c[y]=0;
- p++;
- }
- if(sum==0)
- printf("\n\n NO ERROR FOUND....... \n\n");
- else
- printf("\n\n ERROR AT POSITION %d",sum);
- printf("\n");
- return 0;
- }
- *******************************************************************************
- //BIT STUFF
- #include<stdio.h>
- int main()
- {
- int i=0,count=0;
- char a[100];
- printf("enter the bits : ");
- scanf("%s",a);
- printf("\nAfter bit stuffing \n");
- printf("01111110");
- for(i=0;a[i]; i++)
- {
- if(a[i]=='1')
- count++;
- else
- count=0;
- printf("%c",a[i]);
- if(count==5)
- {
- printf("0");
- count=0;
- }
- }
- printf("01111110");
- return 1;
- }
- ********************************************************************************
- BYTE STUFFING
- #include<stdio.h>
- #include<string.h>
- void main()
- {
- char frame[100],str[50][50];
- char DLE='*';
- char STX='#';
- char ETX='$';
- int i,j,k=0,n;
- frame[k++]='*';
- frame[k++]='#';
- printf("Here DLE is * \n STX is #\n and ETX is $\n");
- printf("Enter no.of String ::\t");
- scanf("%d",&n);
- printf("Enter String \n");
- for(i=0;i<=n;i++)
- {
- gets(str[i]);
- }
- printf("You entered ::\n");
- for(i=0;i<=n;i++)
- {
- puts(str[i]);
- }
- printf("\n");
- for(i=1;i<=n;i++)
- {
- for(j=0;j<strlen(str[i]);j++)
- {
- if(str[i][j]!=DLE)
- {
- frame[k++]=str[i][j];
- }
- else{
- frame[k++]='*';
- frame[k++]=str[i][j];
- }
- }
- }
- frame[k++]='*';
- frame[k++]='$';
- frame[k++]='\0';
- printf("------------------------------\n");
- printf("Byte stuffing at sender side:\n");
- printf("------------------------------\n");
- for(i=0;i<k;i++)
- {
- printf("%c",frame[i]);
- }
- printf("\n------------------------------");
- printf("\nByte stuffing at receiver side\n");
- printf("------------------------------\n");
- for(i=0;i<k;i++)
- {
- if(frame[i]=='#'|| frame[i]=='$')
- ********************************************************************************
- ***************/*PROGRAM: CHARACTER STUFFING AND DE-STUFFING*/******************
- #include
- #include
- #include
- void charc(void);
- void main()
- {
- int choice;
- while(1)
- {
- printf("\n\n\n1.character stuffing");
- printf("\n\n2.exit");
- printf("\n\n\nenter choice");
- scanf("%d",&choice);
- printf("%d",choice);
- if(choice>2)
- printf("\n\n invalid option....please renter");
- switch(choice)
- {
- case 1:
- charc();
- break;
- case 2:
- exit(0);
- }
- }
- }
- void charc(void)
- {
- char c[50],d[50],t[50];
- int i,m,j;
- clrscr();
- printf("enter the number of characters\n");
- scanf("%d",&m);
- printf("\n enter the characters\n");
- for(i=0;i {
- scanf("%c",&c[i]);
- }
- printf("\n original data\n");
- for(i=0;i printf("%c",c[i]);
- d[0]='d';
- d[1]='l';
- d[2]='e';
- d[3]='s';
- d[4]='t';
- d[5]='x';
- for(i=0,j=6;i {
- if((c[i]=='d'&&c[i+1]=='l'&& c[i+2]=='e'))
- {
- d[j]='d';
- j++;
- d[j]='l';
- j++;
- d[j]='e';
- j++;
- m=m+3;
- }
- d[j]=c[i];
- }
- m=m+6;
- m++;
- d[m]='d';
- m++;
- d[m]='l';
- m++;
- d[m]='e';
- m++;
- d[m]='e';
- m++;
- d[m]='t';
- m++;
- d[m]='x';
- m++;
- printf("\n\n transmitted data: \n");
- for(i=0;i {
- printf("%c",d[i]);
- }
- for(i=6,j=0;i {
- if(d[i]=='d'&&d[i+1]=='l'&&d[i+2]=='e'&&d[i+3]=='d'&&d[i+4]=='l'&&d[i+5]=='e')
- i=i+3;
- t[j]=d[i];
- }
- printf("\n\nreceived data:");
- for(i=0;i {printf("%c",t[i]);
- }
- }
- *******************************************************************************
- ***************/* Program TO BIT STUFFING AND DE-STUFFING*/*********************
- #include<stdio.h>
- #include<stdlib.h>
- #define MAXSIZE 100
- int main()
- {
- char *p,*q;
- char temp;
- char in[MAXSIZE];
- char stuff[MAXSIZE];
- char destuff[MAXSIZE];
- int count=0;
- printf("enter the input character string (0‘s & 1‘s only):\n");
- scanf("%s",in);
- p=in;
- q=stuff;
- while(*p!='\0')
- {
- if(*p=='0')
- {
- *q=*p;
- q++;
- p++;
- }
- else
- {
- while(*p=='1' && count!=5)
- {
- count++;
- *q=*p;
- q++;
- p++;
- }
- if(count==5)
- {
- *q='0';
- q++;
- }
- count=0;
- }
- }
- *q='\0';
- printf("\nthe stuffed character string is");
- printf("\n%s",stuff);
- p=stuff;
- q=destuff;
- while(*p!='\0')
- {
- if(*p=='0')
- {
- *q=*p;
- q++;
- p++;
- }
- else
- {
- while(*p=='1' && count!=5)
- {
- count++;
- *q=*p;
- q++;
- p++;
- }
- if(count==5)
- {
- p++;
- }
- count=0;
- }
- }
- *q='\0';
- printf("\nthe destuffed character string is");
- printf("\n%s\n",destuff);
- return 0;
- }
- ********************************************************************************
- SLIDING WINDOW(NO CLIENT SERVER)
- ***********************/* SIMULATION OF SLIDING WINDOW*/************************
- #include<stdio.h>
- #include<conio.h>
- void main()
- {
- char sender[50],receiver[50];
- int i,winsize;
- clrscr();
- printf("\n ENTER THE WINDOWS SIZE : ");
- scanf("%d",&winsize);
- printf("\n SENDER WINDOW IS EXPANDED TO STORE MESSAGE OR WINDOW \n");
- printf("\n ENTER THE DATA TO BE SENT: ");
- fflush(stdin);
- gets(sender);
- for(i=0;i<winsize;i++)
- receiver[i]=sender[i];
- receiver[i]=NULL;
- printf("\n MESSAGE SEND BY THE SENDER:\n");
- puts(sender);
- printf("\n WINDOW SIZE OF RECEIVER IS EXPANDED\n");
- printf("\n ACKNOWLEDGEMENT FROM RECEIVER \n");
- for(i=0;i<winsize;i++);
- printf("\n ACK:%d",i);
- printf("\n MESSAGE RECEIVED BY RECEIVER IS : ");
- puts(receiver);
- printf("\n WINDOW SIZE OF RECEIVER IS SHRINKED \n");
- getch();
- }
- ********************************************************************************
- //CHAT APPLICATION USING TCP
- Client Program:
- //Client Program
- #include<stdio.h>
- #include<sys/types.h>
- #include<sys/socket.h>
- #include<netinet/in.h>
- #include<netdb.h>
- #define SERV_TCP_PORT 5035
- int main(int argc,char*argv[])
- {
- int sockfd;
- struct sockaddr_in serv_addr;
- struct hostent *server;
- char buffer[4096];
- int k=5,cnt=0;
- sockfd=socket(AF_INET,SOCK_STREAM,0);
- serv_addr.sin_family=AF_INET;
- serv_addr.sin_addr.s_addr=inet_addr("127.0.0.1");
- serv_addr.sin_port=htons(SERV_TCP_PORT);
- printf("\nReady for sending...");
- connect(sockfd,(struct sockaddr*)&serv_addr,sizeof(serv_addr));
- printf("\nEnter the message to send\n");
- printf("\nClient: ");
- fgets(buffer,4096,stdin);
- write(sockfd,buffer,4096);
- printf("Serverecho:%s",buffer);
- printf("\n");
- close(sockfd);
- return 0;
- }
- Server Program:
- // Server Program
- #include<stdio.h>
- #include<netinet/in.h>
- #include<netdb.h>
- #include<string.h>
- #define SERV_TCP_PORT 5035
- int main(int argc,char**argv)
- {
- int sockfd,newsockfd,clength;
- struct sockaddr_in serv_addr,cli_addr;
- char buffer[4096];
- //creating a socket
- sockfd=socket(AF_INET,SOCK_STREAM,0);
- serv_addr.sin_family=AF_INET;
- serv_addr.sin_addr.s_addr=INADDR_ANY;
- serv_addr.sin_port=htons(SERV_TCP_PORT);
- printf("\nStart");
- //bind the socket to port address and any local interface
- bind(sockfd,(struct sockaddr*)&serv_addr,sizeof(serv_addr));
- printf("\nListening...");
- printf("\n");
- listen(sockfd,5);
- clength=sizeof(cli_addr);
- newsockfd=accept(sockfd,(struct sockaddr*)&cli_addr,&clength);
- //newsockfd=accept(sockfd,(struct sockaddr*)NULL,NULL);
- printf("\nAccepted");
- printf("\n");
- bzero(buffer,4096);
- read(newsockfd,buffer,4096);
- printf("\nClient message:%s",buffer);
- write(newsockfd,buffer,strlen(buffer)+1);
- printf("\n");
- //close(sockfd);
- //return 0;
- }
- ********************************************************************************
- AIM: To write a program for UDP echo client server.
- CODE :
- SERVER:
- #include<sys/types.h>
- #include<sys/socket.h>
- #include<netinet/in.h>
- #include<unistd.h>
- #include<netdb.h>
- #include<stdio.h>
- #include<string.h>
- #include<arpa/inet.h>
- #define MAXLINE 1024
- int main(int argc,char **argv)
- {
- int sockfd;
- int n;
- socklen_t len;
- char msg[1024];
- struct sockaddr_in servaddr,cliaddr;
- sockfd=socket(AF_INET,SOCK_DGRAM,0);
- bzero(&servaddr,sizeof(servaddr));
- servaddr.sin_family=AF_INET;
- servaddr.sin_addr.s_addr=INADDR_ANY;
- servaddr.sin_port=htons(5035);
- printf("\n\n Binded");
- bind(sockfd,(struct sockaddr*)&servaddr,sizeof(servaddr));
- printf("\n\n Listening...");
- for(;;)
- {
- printf("\n ");
- len=sizeof(cliaddr);
- n=recvfrom(sockfd,msg,MAXLINE,0,(struct
- sockaddr*)&cliaddr,&len);
- printf("\n Client's Message : %s\n",msg);
- if(n<6)
- perror("send error");
- sendto(sockfd,msg,n,0,(struct sockaddr*)&cliaddr,len);
- }
- return 0;
- }
- CLIENT:
- #include<sys/types.h>
- #include<sys/socket.h>
- #include<netinet/in.h>
- #include<string.h>
- #include<arpa/inet.h>#include<string.h>
- #include<arpa/inet.h>
- #include<stdio.h>
- #define MAXLINE 1024
- int main(int argc,char* argv[])
- {
- int sockfd;
- int n;
- socklen_t len;
- char sendline[1024],recvline[1024];
- struct sockaddr_in servaddr;
- strcpy(sendline,"");
- printf("\n Enter the message : ");
- scanf("%s",sendline);
- sockfd=socket(AF_INET,SOCK_DGRAM,0);
- bzero(&servaddr,sizeof(servaddr));
- servaddr.sin_family=AF_INET;
- servaddr.sin_addr.s_addr=inet_addr("127.0.0.1");
- servaddr.sin_port=htons(5035);
- connect(sockfd,(struct sockaddr*)&servaddr,sizeof(servaddr));
- len=sizeof(servaddr);
- sendto(sockfd,sendline,MAXLINE,0,(struct sockaddr*)&servaddr,len);
- n=recvfrom(sockfd,recvline,MAXLINE,0,NULL,NULL);
- recvline[n]=0;
- printf("\n Server's Echo : %s\n\n",recvline);
- return 0;
- }
- ********************************************************************************
- Aim: To Implement a message transfer from client to server
- process using UDP.
- Server:
- #include <arpa/inet.h>
- #include <netinet/in.h>
- #include <stdio.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <unistd.h>
- #include <stdlib.h>
- #include <string.h>
- #define BUFLEN 512
- #define PORT 9930
- void err(char *str)
- {
- perror(str);
- exit(1);
- }
- int main(void)
- {
- struct sockaddr_in my_addr, cli_addr;
- int sockfd, i;
- socklen_t slen=sizeof(cli_addr);
- char buf[BUFLEN];
- if ((sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP))==-1)
- err("socket");
- else
- printf("Server : Socket() successful\n");
- bzero(&my_addr, sizeof(my_addr));
- my_addr.sin_family = AF_INET;
- my_addr.sin_port = htons(PORT);
- my_addr.sin_addr.s_addr = htonl(INADDR_ANY);
- if (bind(sockfd, (struct sockaddr* ) &my_addr, sizeof(my_addr))==-1)
- err("bind");
- else
- printf("Server : bind() successful\n");
- while(1)
- {
- if (recvfrom(sockfd, buf, BUFLEN, 0, (struct sockaddr*)&cli_addr,
- &slen)==-1)
- err("recvfrom()");
- printf("Received packet from %s:%d\nData: %s\n\n",
- inet_ntoa(cli_addr.sin_addr), ntohs(cli_addr.sin_port), buf);
- }
- close(sockfd);
- return 0;
- }
- Client:
- #include <arpa/inet.h>
- #include <netinet/in.h>
- #include <stdio.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <unistd.h>
- #include <stdlib.h>
- #include <string.h>
- #define BUFLEN 512
- #define PORT 9930
- void err(char *s)
- {
- perror(s);
- exit(1);
- }
- int main(int argc, char** argv)
- {
- struct sockaddr_in serv_addr;
- int sockfd, i, slen=sizeof(serv_addr);
- char buf[BUFLEN];
- if(argc != 2)
- {
- printf("Usage : %s <Server-IP>\n",argv[0]);
- exit(0);
- }
- if ((sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP))==-1)
- err("socket");
- bzero(&serv_addr, sizeof(serv_addr));
- serv_addr.sin_family = AF_INET;
- serv_addr.sin_port = htons(PORT);
- if (inet_aton(argv[1], &serv_addr.sin_addr)==0)
- {
- fprintf(stderr, "inet_aton() failed\n");
- exit(1);
- }
- while(1)
- {
- printf("\nEnter data to send(Type exit and press enter to exit) : ");
- scanf("%[^\n]",buf);
- getchar();
- if(strcmp(buf,"exit") == 0)
- exit(0);
- if (sendto(sockfd, buf, BUFLEN, 0, (struct sockaddr*)&serv_addr,
- slen)==-1)
- err("sendto()");
- }
- close(sockfd);
- return 0;
- }
- *******************************************************************************
- PROGRAM:TRANSFER A FILE USING TCP**************************/
- #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>
- main()
- {
- struct sockaddr_in clientaddr,serveraddr;
- int serversock,newserversock,clientsize,n,f,rc;
- char filename[100],filedata[300];
- fflush(stdin);
- serversock=socket(AF_INET,SOCK_STREAM,0);
- bzero((char*)&serveraddr,sizeof(serveraddr));
- serveraddr.sin_family=AF_INET;
- serveraddr.sin_port=2000;
- serveraddr.sin_addr.s_addr=inet_addr("127.0.0.1");
- bind(serversock,(struct sockaddr*)&serveraddr,sizeof(serveraddr));
- sizeof(serveraddr);
- listen(serversock,5);
- while(1)
- {
- clientsize=sizeof(clientaddr);
- newserversock=accept(serversock,(struct sockaddr*)&clientaddr,&clientsize);
- n=read(newserversock,filename,100);
- filename[n]=0;
- printf("\nThe requested file from the client is %s.\n",filename);
- //write(1,filename,n);
- f=open(filename,O_RDWR);
- n=read(f,filedata,300);
- printf("\nThe contents of the file: \n\n");
- printf("%s",filedata);
- write(newserversock,filedata,n);
- }
- close(serversock);
- close(newserversock);
- }
- Client:
- #include<stdio.h>
- #include<sys/types.h>
- #include<sys/stat.h>
- #include<sys/socket.h>
- #include<netinet/in.h>
- #include<arpa/inet.h>
- #include<fcntl.h>
- #include<string.h>
- #include<netdb.h>
- #include<stdlib.h>
- main()
- {
- struct sockaddr_in serveraddr;
- int clientsock,n,rdret,length;
- char filename[20],filedata[300];
- bzero((char*)&serveraddr,sizeof(serveraddr));
- serveraddr.sin_family=AF_INET;
- serveraddr.sin_port=2000;
- serveraddr.sin_addr.s_addr=inet_addr("127.0.0.1");
- clientsock=socket(AF_INET,SOCK_STREAM,0);
- if(connect(clientsock,(struct sockaddr*)&serveraddr,sizeof(serveraddr))<0)
- {
- printf("\nError:Cannot connect...");
- exit(0);
- }
- printf("Enter the name of the file : ");
- scanf("%s",filename);
- length=strlen(filename);
- write(clientsock,filename,length);
- rdret=read(clientsock,filedata,300);
- printf("\nThe contents of the file: \n\n");
- printf("%s",filedata);
- close(clientsock);
- }
- ******************************************************************************
- 9.username password
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <errno.h>
- #include <string.h>
- #include <netdb.h>
- #include <sys/types.h>
- #include <netinet/in.h>
- #include <sys/socket.h>
- #include <arpa/inet.h>
- int main(int argc, char *argv[])
- {
- int sock_des,port,n1,n2,s1,s2;
- char buffer1[100],buffer2[100],buffer3[100],buffer4[100];
- int length,new_des;
- struct sockaddr_in server_addr,client_addr;
- bzero(buffer3,sizeof(buffer3));
- printf("\n Input Authentic Username :\n");
- scanf("%s",buffer3);
- bzero(buffer4,sizeof(buffer4));
- printf("\n Input Authentic Password :\n");
- scanf("%s",buffer4);
- if(argc!=2)
- {
- printf("Usage: ./server port\n");
- exit(1);
- }
- port= atoi(argv[1]);
- if((sock_des=socket(AF_INET,SOCK_STREAM,0))==-1)
- {
- perror("socket");
- exit(1);
- }
- server_addr.sin_family = AF_INET;
- server_addr.sin_port = htons(port);
- server_addr.sin_addr.s_addr= htonl(INADDR_ANY);
- if (bind(sock_des,(const struct sockaddr *)&server_addr,sizeof(struct sockaddr))==-1)
- {
- perror("bind");
- exit(1);
- }
- if( listen(sock_des,5)==-1)
- {
- perror("listen");
- exit(1);
- }
- printf("Server is listening at port %d \n", port);
- while(1)
- {
- if((new_des=accept(sock_des,(struct sockaddr *)&client_addr,&length))==-1)
- {
- perror("accept");
- exit(1);
- }
- bzero(buffer1,sizeof(buffer1));
- n1=read(new_des,buffer1,sizeof(buffer1));
- buffer1[n1]='\0';
- if((s1=strcmp(buffer1,buffer3))==0)
- {
- write(new_des,"Username Match!Enter Password",30);
- printf("Username Match !!!\n");
- bzero(buffer2,sizeof(buffer2));
- n2=read(new_des,buffer2,sizeof(buffer2));
- buffer2[n2]='\0';
- if((s2=strcmp(buffer2,buffer4))==0)
- {
- write(new_des,"Password Match",15);
- printf("Password Match !!!\n");
- }
- else
- {
- write(new_des,"Password NOT Match",19);
- printf("Password NOT Match !!!\n");
- }
- }
- else
- {
- write(new_des,"Username Not Match",19);
- printf("Username Not Match !!!\n");
- }
- close(new_des);
- }
- }
- client
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <errno.h>
- #include <string.h>
- #include <netdb.h>
- #include <sys/types.h>
- #include <netinet/in.h>
- #include <sys/socket.h>
- #include <arpa/inet.h>
- int main(int argc,char *argv[])
- {
- int sock_des,port,n;
- struct hostent *host;
- char buffer1[100],buffer2[100],buffer3[100],buffer4[100];
- struct sockaddr_in server_addr;
- if(argc!=3)
- {
- printf("Usage: ./client hostname port\n");
- exit(1);
- }
- if((host=gethostbyname(argv[1]))==NULL)
- {
- printf("Unknown Host\n");
- exit(1);
- }
- port = atoi(argv[2]);
- if((sock_des=socket(AF_INET,SOCK_STREAM,0))==-1)
- {
- perror("socket");
- exit(1);
- }
- server_addr.sin_family = AF_INET;
- server_addr.sin_port = htons(port);
- server_addr.sin_addr = *((struct in_addr *)host->h_addr);
- if(connect(sock_des,(struct sockaddr *)&server_addr,sizeof(struct sockaddr))==-1)
- {
- perror("connect");
- exit(1);
- }
- bzero(buffer1,sizeof(buffer1));
- printf("Enter the Username :\n");
- scanf("%s",buffer1);
- write(sock_des,buffer1,sizeof(buffer1));
- bzero(buffer4,sizeof(buffer4));
- n=read(sock_des,buffer4,sizeof(buffer4));
- buffer4[n]='\0';
- printf("Server Sent : %s\n", buffer4);
- bzero(buffer2,sizeof(buffer2));
- printf("Enter the Password :\n");
- scanf("%s",buffer2);
- write(sock_des,buffer2,sizeof(buffer2));
- bzero(buffer3,sizeof(buffer3));
- n=read(sock_des,buffer3,sizeof(buffer3));
- buffer3[n]='\0';
- printf("Server Sent : %s\n", buffer3);
- close(sock_des);
- }
- *******************************************************************************
- /*************************PROGRAM:NR/NRZ**************************************/
- # include <graphics.h>
- # include <iostream.h>
- # include <conio.h>
- # include <string.h>
- # include <dos.h>
- int main(void)
- {
- void drawgrid(int, int, int, int);
- void encode(char *,char *, int, int, int, int);
- void draw(int ,int ,char *, int);
- char *message;
- int len;
- clrscr();
- cout << "
- DIGITAL ENCODING TECHNIQUES";
- cout << "
- Enter the data to be encoded (max 24 bits) : ";
- do{
- cin >> message;
- len = strlen(message);
- if(len>24)
- cout << "Message is greater than 12 bits, please type new message:
- ";
- }while(len>24);
- char *o_mess =new char[len];
- char *e_mess =new char[len*2];
- strcpy(o_mess,message);
- int gd=DETECT, gm, i, x, y;
- initgraph(&gd,&gm,"..\BGI");
- setcolor(8);
- settextstyle(DEFAULT_FONT,0,2);
- outtextxy(100,10,"DIGITAL ENCODING TECHNIQUES");
- setcolor(YELLOW);
- rectangle(0,30,630,450);
- rectangle(1,31,629,449);
- setcolor(WHITE);
- settextstyle(DEFAULT_FONT,0,0);
- drawgrid(120,60,len,20);
- outtextxy(10,50, "Message");
- x= 137;
- for(i=0; i<len; i++, x+=20)
- {
- if(o_mess[i]=='1')
- outtextxy(x,50,"1");
- else
- outtextxy(x,50,"0");
- }
- x=120;
- y=80;
- outtextxy(10,100, "NRZ - L");
- encode(o_mess,e_mess,len,0,2,0);
- draw(x,y,e_mess,len*2);
- y+=60;
- outtextxy(10,160, "NRZ - I");
- encode(o_mess,e_mess,len,3,4,0);
- draw(x,y,e_mess,len*2);
- y+=60;
- outtextxy(10,220, "Bipolar AMI");
- encode(o_mess,e_mess,len,3,1,0);
- draw(x,y,e_mess,len*2);
- y+=60;
- outtextxy(10,280, "Pseudo Tenary");
- encode(o_mess,e_mess,len,4,3,0);
- draw(x,y,e_mess,len*2);
- y+=60;
- outtextxy(10,340, "Manchester");
- encode(o_mess,e_mess,len,0,2,1);
- draw(x,y,e_mess,len*2);
- y+=60;
- outtextxy(10,400, "D-Manchester");
- encode(o_mess,e_mess,len,4,3,1);
- draw(x,y,e_mess,len*2);
- y+=60;
- getch();
- closegraph();
- return 0;
- }
- void drawgrid(int x, int y, int pulses, int width)
- {
- line(x,y,x+(pulses*width),y);
- line(x,y,x,y+(width*12+150));
- for(int i=0; i<pulses; i++)
- {
- setcolor(LIGHTBLUE);
- line(x+width,y+1,x+width,y+(width*12+150));
- setcolor(BLUE);
- line(x+width/2,y+1,x+width/2,y+(width*12+150));
- x+=width;
- }
- setcolor(WHITE);
- return;
- }
- void draw(int x, int y, char *data, int len)
- {
- int prev_y, curr_y;
- prev_y = y;
- for(int i=0; i<len; i++, x+=10)
- {
- if(data[i]=='2')
- curr_y = y;
- if(data[i]=='1')
- curr_y = y+20;
- if(data[i]=='0')
- curr_y = y+40;
- line(x,curr_y,x+10,curr_y);
- sound(70);
- delay(50);
- nosound();
- if(prev_y != curr_y)
- line(x,prev_y,x,curr_y);
- sound(170);
- delay(50);
- nosound();
- prev_y = curr_y;
- delay(10);
- }
- return;
- }
- void encode(char *o_mess,char *e_mess,int len,int one,int zero, int
- mid)
- {
- int i, j, previous=2;
- for(i=0, j=0; i<len; i++, j+=2)
- {
- if(o_mess[i]=='1')
- {
- if(one==0)
- e_mess[j]='0';
- if(one==1)
- e_mess[j]='1';
- if(one==2)
- e_mess[j]='2';
- if(one==3)
- {
- if(previous==2)
- {
- previous=0;
- e_mess[j]='0';
- }
- else
- {
- previous=2;
- e_mess[j]='2';
- }
- }
- if(one==4)
- {
- if(previous==2)
- e_mess[j]='2';
- else
- e_mess[j]='0';
- }
- }
- else
- {
- if(zero==0)
- e_mess[j]='0';
- if(zero==1)
- e_mess[j]='1';
- if(zero==2)
- e_mess[j]='2';
- if(zero==3)
- {
- if(previous==2)
- {
- previous=0;
- e_mess[j]='0';
- }
- else
- {
- previous=2;
- e_mess[j]='2';
- }
- }
- if(zero==4)
- {
- if(previous==2)
- e_mess[j]='2';
- else
- e_mess[j]='0';
- }
- }
- if(mid==1)
- {
- if(e_mess[j]=='2')
- e_mess[j+1]='0';
- else
- e_mess[j+1]='2';
- if(previous==2)
- previous=0;
- else
- previous=2;
- }
- else
- e_mess[j+1]=e_mess[j];
- }
- return;
- }
- *******************************************************************************
- goback narq
- #include<stdio.h>
- #include<math.h>
- int main()
- {
- printf("\t\tGO BACK NARQ\n\n");
- printf("enter the msg signal:-");
- char msg[100];
- int wln;
- scanf("%s",msg);
- printf("\n\nenter the window length:-");
- scanf("%d",&wln);
- int msg_lost=-1,ack_lost=-1,error_frame=-1,i,m,sf=0,sl=0,flag=0;
- printf("\n\nenter the lost msg index:-");
- scanf("%d",&msg_lost);
- for(i=0;msg[i]!='\0';i++)
- {
- printf("\nsendmsgbit(%d)\t",i);
- if(i!=msg_lost)
- {
- if(flag!=5)
- printf("recievedmsgbit(%d)\tmessagebit(%c)",i,msg[i]);
- else
- printf("packet discarded since %d is not received..",m);
- if((flag==5&&sf==m+wln-1)||(flag==5&&msg[i+1]=='\0'))
- {
- i=m-1;
- flag=0;
- printf("\nresending this window again...\n");
- continue;
- }
- sf++;
- if(sf-sl>wln-1)
- sl++;
- }
- else
- {
- printf("lost msgbit....\t");
- m=msg_lost;
- msg_lost=-1;
- flag=5;
- }
- printf("\n");
- }
- }
- ********************************************************************************
- selective repeat arq
- client
- #include<stdio.h>
- #include<sys/types.h>
- #include<sys/socket.h>
- #include<netinet/in.h>
- #include<string.h>
- #include<time.h>
- #include<stdlib.h>
- #include<ctype.h>
- #include<arpa/inet.h>
- #define W 5
- #define P1 50
- #define P2 10
- char a[10];
- char b[10];
- void alpha9(int);
- void alp(int);
- int main()
- {
- struct sockaddr_in ser,cli;
- int s,n,sock,i,j,c=1,f;
- unsigned int s1;
- s=socket(AF_INET,SOCK_STREAM,0);
- ser.sin_family=AF_INET;
- ser.sin_port=6500;
- ser.sin_addr.s_addr=inet_addr("127.0.0.1");
- bind(s,(struct sockaddr *) &ser, sizeof(ser));
- listen(s,1);
- n=sizeof(cli);
- sock=accept(s,(struct sockaddr *)&cli, &n);
- printf("\nTCP Connection Established.\n");
- s1=(unsigned int) time(NULL);
- srand(s1);
- strcpy(b,"Time Out ");
- recv(sock,a,sizeof(a),0);
- f=atoi(a);
- while(1)
- {
- for(i=0;i<W;i++)
- {
- recv(sock,a,sizeof(a),0);
- if(strcmp(a,b)==0)
- {
- break;
- }
- }
- i=0;
- while(i<W)
- {
- L:
- j=rand()%P1;
- if(j<P2)
- {
- alp(c);
- send(sock,b,sizeof(b),0);
- goto L;
- }
- else
- {
- alpha9(c);
- if(c<=f)
- {
- printf("\nFrame %s Received ",a);
- send(sock,a,sizeof(a),0);
- }
- else
- {
- break;
- }
- c++;
- }
- if(c>f)
- {
- break;
- }
- i++;
- }
- }
- close(sock);
- close(s);
- return 0;
- }
- void alpha9(int z)
- {
- int k,i=0,j,g;
- k=z;
- while(k>0)
- {
- i++;
- k=k/10;
- }
- g=i;
- i--;
- while(z>0)
- {
- k=z%10;
- a[i]=k+48;
- i--;
- z=z/10;
- }
- a[g]='\0';
- }
- void alp(int z)
- {
- int k,i=1,j,g;
- k=z;
- b[0]='N';
- while(k>0)
- {
- i++;
- k=k/10;
- }
- g=i;
- i--;
- while(z>0)
- {
- k=z%10;
- b[i]=k+48;
- i--;
- z=z/10;
- }
- b[g]='\0';
- }
- server
- #include<stdio.h>
- #include<sys/types.h>
- #include<sys/socket.h>
- #include<netinet/in.h>
- #include<string.h>
- #include<time.h>
- #include<stdlib.h>
- #include<ctype.h>
- #define W 5
- char a[10];
- char b[10];
- void alpha9(int);
- int con();
- int main()
- {
- int s,f,wl,c=1,x,i=0,j,n,p=0,e=0;
- struct sockaddr_in ser;
- s=socket(AF_INET,SOCK_STREAM,0);
- ser.sin_family=AF_INET;
- ser.sin_port=6500;
- ser.sin_addr.s_addr=inet_addr("127.0.0.1");
- connect(s,(struct sockaddr *) &ser, sizeof(ser));
- printf("\nTCP Connection Established.\n");
- printf("\nEnter the number of Frames: ");
- scanf("%d",&f);
- alpha9(f);
- send(s,a,sizeof(a),0);
- strcpy(b,"Time Out ");
- while(1)
- {
- for(i=0;i<W;i++)
- {
- alpha9(c);
- send(s,a,sizeof(a),0);
- if(c<=f)
- {
- printf("\nFrame %d Sent",c);
- c++;
- }
- }
- i=0;
- wl=W;
- while(i<W)
- {
- recv(s,a,sizeof(a),0);
- p=atoi(a);
- if(a[0]=='N')
- {
- e=con();
- if(e<f)
- {
- printf("\nNAK %d",e);
- printf("\nFrame %d sent",e);
- i--;
- }
- }
- else
- {
- if(p<=f)
- {
- printf("\nFrame %s Acknowledged",a);
- wl--;
- }
- else
- {
- break;
- }
- }
- if(p>f)
- {
- break;
- }
- i++;
- }
- if(wl==0 && c>f)
- {
- send(s,b,sizeof(b),0);
- break;
- }
- else
- {
- c=c-wl;
- wl=W;
- }
- }
- close(s);
- return 0;
- }
- void alpha9(int z)
- {
- int k,i=0,j,g;
- k=z;
- while(k>0)
- {
- i++;
- k=k/10;
- }
- g=i;
- i--;
- while(z>0)
- {
- k=z%10;
- a[i]=k+48;
- i--;
- z=z/10;
- }
- a[g]='\0';
- }
- int con()
- {
- char k[9];
- int i=1;
- while(a[i]!='\0')
- {
- k[i-1]=a[i];
- i++;
- }
- k[i-1]='\0';
- i=atoi(k);
- return i;
- }
- ********************************************************************************
- client server for arithmetic operations
- #include<stdio.h>
- #include<stdlib.h>
- #include<sys/types.h>
- #include<sys/socket.h>
- #include<netinet/in.h>
- int main(int argc,int *argv[])
- {
- int n1=atoi(argv[1]),n2=atoi(argv[2]),res=0;
- char operator=argv[3][0];
- int sock_id=socket(AF_UNIX,SOCK_STREAM,0);
- if(sock_id<0)
- {
- printf("Error in getting socket\n");
- return 0;
- }
- struct sockaddr_in clientstruct;
- clientstruct.sin_family=AF_UNIX;
- clientstruct.sin_addr.s_addr=inet_addr("127.0.0.1");
- clientstruct.sin_port=1025;
- int ret=connect(sock_id,(struct sockaddr *)&clientstruct,sizeof(clientstruct));
- write(sock_id,&n1,sizeof(n1));
- write(sock_id,&n2,sizeof(n2));
- write(sock_id,&operator,sizeof(operator));
- int ret1=read(sock_id,&res,sizeof(res));
- printf("FROM SERVER:%d \n Bytes=%d\n",res,ret1);
- close(sock_id);
- return 0;
- }
- Code for Server
- #include<stdio.h>
- #include<stdlib.h>
- #include<sys/types.h>
- #include<sys/socket.h>
- #include<netinet/in.h>
- int main()
- {
- int n1,n2,res=0;
- char operator;
- int session_id;
- int server_id=socket(AF_UNIX,SOCK_STREAM,0);
- if(server_id<0)
- {
- printf("Error in getting socket\n");
- return 0;
- }
- struct sockaddr_in serverstruct,clientstruct;
- serverstruct.sin_family=AF_UNIX;
- serverstruct.sin_addr.s_addr=inet_addr("127.0.0.1");
- serverstruct.sin_port=1025;
- int i=bind(server_id,(struct sockaddr*)&serverstruct,sizeof(serverstruct));
- if(i<0)
- {
- printf("Error in bind\n");
- return 0;
- }
- i=listen(server_id,10);
- if(i<0)
- {
- printf("Error in listening\n");
- return 0;
- }
- int client_len=sizeof(serverstruct);
- while(1)
- {
- printf("Waiting for the client\n");
- session_id=accept(server_id,(struct sockaddr*)&serverstruct,&client_len);
- read(session_id,&n1,sizeof(n1));
- read(session_id,&n2,sizeof(n2));
- read(session_id,&operator,sizeof(operator));
- switch(operator)
- {
- case '+':
- res=n1+n2;
- break;
- case '-':
- res=n1-n2;
- break;
- case '*':
- res=n1*n2;
- break;
- case '/':
- res=n1/n2;
- break;
- default:
- printf("invalid operation\n");
- }
- printf("From CLIENT:n1=%d\n",n1);
- printf("From CLIENT:n2=%d\n",n2);
- printf("From CLIENT:operator=%c\n",operator);
- int b=write(session_id,&res,sizeof(res));
- close(session_id);
- }
- close(server_id);
- return 0;
- }
- *******************************************************************************
Add Comment
Please, Sign In to add comment