Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Program 1:OSI Model
- Source Code:
- #include<stdio.h>
- #include<conio.h>
- void main()
- {
- 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);
- }
- Output Screen Snapshot:
- Program 2:Bit Stuffing
- Sorce Code:
- #include<stdio.h>
- #include<conio.h>
- main()
- {
- int a[15];
- int i,j,k,n,c=0,pos=0;
- printf("\n Enter the number of bits:");
- scanf("%d",&n);
- printf("\n Enter the bits:");
- for(i=0;i<n;i++)
- scanf("%d",&a[i]);
- for(i=0;i<n;i++)
- {
- if(a[i]==1)
- {
- c++;
- if(c==5)
- {
- pos=i+1;
- c=0;
- for(j=n;j>=pos;j--)
- {
- k=j+1;
- a[k]=a[j];
- }
- a[pos]=0;
- n=n+1;
- }
- }
- else
- c=0;
- }
- printf("\n DATA AFTER STUFFING \n");
- printf(" 01111110 ");
- for(i=0;i<n;i++)
- {
- printf("%d",a[i]);
- }
- printf(" 01111110 ");
- getch();
- }
- Output Screen Snapshot:
- Program 3:Byte Stuffing
- Source Code:
- #include<stdio.h>
- #include<conio.h>
- void main()
- {
- char frame[100],str[50][50];
- char flag='z';
- char esc='x';
- int i,j,k=0,n;
- frame[k++]='z';
- printf("Enter no.of String ::\t");
- scanf("%d",&n);
- printf("Enter String :");
- 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]!=flag&&str[i][j]!=esc)
- {
- frame[k++]=str[i][j];
- }
- else{
- frame[k++]='x';
- frame[k++]=str[i][j];
- }
- }
- }
- frame[k++]='z';
- frame[k++]='\0';
- printf("------------------------------\n");
- printf("Byte stuffing at sender side:\n\n");
- printf("------------------------------\n");
- for(i=0;i<k;i++)
- {
- printf("%c",frame[i]);
- }
- printf("\n------------------------------");
- printf("\nByte stuffing at receiver side\n\n");
- printf("------------------------------\n");
- for(i=0;i<k;i++)
- {
- if(frame[i]=='x'|| frame[i]=='z')
- {
- i++;
- }
- printf("%c",frame[i]);
- }
- getch();
- }
- Output Screen Snapshot:
- Program 4:Character Count
- Source Code:
- #include<stdio.h>
- #include<conio.h>
- #include<string.h>
- void main()
- {
- int i,j,k,n,c=0,l;
- char s[20];
- printf("Enter the string:");
- gets(s);
- l=strlen(s);
- printf("\n%d",l);
- printf("\n\n");
- j=0;
- printf("Enter the frame size:");
- 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;
- }
- }
- Output Screen Snapshot:
- Program 5:CRC
- Source Code:
- #include<stdio.h>
- #include<string.h>
- #define N strlen(g)
- char t[28],cs[28],g[]="10001000000100001";
- int a,e,c;
- void xor(){
- for(c = 1;c < N; c++)
- cs[c] = (( cs[c] == g[c])?'0':'1');
- }
- void crc(){
- for(e=0;e<N;e++)
- cs[e]=t[e];
- do{
- if(cs[0]=='1')
- xor();
- for(c=0;c<N-1;c++)
- cs[c]=cs[c+1];
- cs[c]=t[e++];
- }while(e<=a+N-1);
- }
- int main()
- {
- printf("\nEnter data : ");
- scanf("%s",t);
- printf("\n----------------------------------------");
- printf("\nGeneratng polynomial : %s",g);
- a=strlen(t);
- for(e=a;e<a+N-1;e++)
- t[e]='0';
- printf("\n----------------------------------------");
- printf("\nModified data is : %s",t);
- printf("\n----------------------------------------");
- crc();
- printf("\nChecksum is : %s",cs);
- for(e=a;e<a+N-1;e++)
- t[e]=cs[e-a];
- printf("\n----------------------------------------");
- printf("\nFinal codeword is : %s",t);
- printf("\n----------------------------------------");
- printf("\nTest error detection 0(yes) 1(no)? : ");
- scanf("%d",&e);
- if(e==0)
- {
- do{
- printf("\nEnter the position where error is to be inserted : ");
- scanf("%d",&e);
- }while(e==0 || e>a+N-1);
- t[e-1]=(t[e-1]=='0')?'1':'0';
- printf("\n----------------------------------------");
- printf("\nErroneous data : %s\n",t);
- }
- crc();
- for(e=0;(e<N-1) && (cs[e]!='1');e++);
- if(e<N-1)
- printf("\nError detected\n\n");
- else
- printf("\nNo error detected\n\n");
- printf("\n----------------------------------------\n");
- return 0;
- }
- Output Screen Snapshot:
- Program 6:Sliding Window Protocol
- Source Code:
- #include<stdio.h>
- #include<conio.h>
- void main()
- {
- char sender[50],receiver[50];
- int i,winsize;
- 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");
- }
- Output Screen Snapshot:
- Program 7:Hamming Code
- Source 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;
- }
- Output Screen Snapshot:
- Program 8 : CHECKSUM
- Source Code:
- #include<stdio.h>
- #include<conio.h>
- #include<math.h>
- void main()
- {
- int r,t[20],x,o,a[30],i,j,k,z,aa,b[20],n,y,s,n1,flag=0;
- printf("*********sender side***********\n");
- printf("enter the data length:");
- scanf("%d",&n);
- for(i=1;i<=30;i++)
- {
- a[i]=0;
- }
- printf("enter the data:");
- for(i=1;i<=n;i++)
- scanf("%d",&a[i]);
- printf("enter the chopping size:");
- scanf("%d",&o);
- z=0;
- for(i=1;i<=n;i=i+o)
- {
- x=o-1;
- k=0;
- for(j=i;j<i+o;j++)
- {
- k+=pow(2,x)*a[j];
- x--;
- }
- z=z+k;
- }
- printf("\ntotal in decimal is=%d",z);
- y=0;
- s=1;
- while(z>=1)
- {
- aa=z%2;
- t[s]=aa;
- s++;
- z=z/2;
- y++;
- }
- if(y>o)
- {
- t[1]=t[o+1]+t[1];
- }
- r=1;
- for(i=o;i>=1;i--)
- {
- b[r]=t[i];
- r++;
- }
- for(i=o;i>=1;i--)
- {
- if(b[i]>1)
- {
- b[i]=b[i]%2;
- b[i-1]+=1;
- }
- }
- printf("\nb[i]=");
- for(i=1;i<=o;i++)
- printf("\t%d",b[i]);
- for(i=1;i<=o;i++)
- {
- if(b[i]==0)
- b[i]=1;
- else
- b[i]=0;
- }
- printf("\nthe checksum value is:");
- for(i=1;i<=o;i++)
- {
- printf("\t%d",b[i]);
- }
- printf("\n*********Receiver side*********\n");
- for(i=1;i<=30;i++)
- {
- a[i]=0;
- }
- n=n+o;
- printf("enter the data:");
- for(i=1;i<=n;i++)
- scanf("%d",&a[i]);
- z=0;
- for(i=1;i<=n;i=i+o)
- {
- x=o-1;
- k=0;
- for(j=i;j<i+o;j++)
- {
- k+=pow(2,x)*a[j];
- x--;
- }
- z=z+k;
- }
- printf("total in decimal is:%d",z);
- y=0;
- s=1;
- while(z>=1)
- {
- aa=z%2;
- t[s]=aa;
- s++;
- z=z/2;
- y++;
- }
- if(y>o)
- {
- t[1]=t[o+1]+t[1];
- }
- r=1;
- for(i=o;i>=1;i--)
- {
- b[r]=t[i];
- r++;
- }
- for(i=o;i>=1;i--)
- {
- if(b[i]>1)
- {
- b[i]=b[i]%2;
- b[i-1]+=1;
- }
- }
- printf("\nb[i]=");
- for(i=1;i<=o;i++)
- printf("\t%d",b[i]);
- for(i=1;i<=o;i++)
- {
- if(b[i]==0)
- b[i]=1;
- else
- b[i]=0;
- }
- printf("\nthe checksum value is:");
- for(i=1;i<=o;i++)
- {
- printf("\t%d",b[i]);
- }
- for(i=1;i<=o;i++)
- {
- if(b[i]==1)
- {
- flag=1;
- }
- }
- if(flag!=0)
- printf("\nError present in the code....");
- else
- {
- printf("\nNO error present in the code....");
- getch();
- printf("\n\tcode successfully accepted by receiver.....");
- }
- getch();
- }
- 14BCE0728
- SHREEJIT VERMA
- 8. Chat application using TCP/IP.
- //client side
- #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));
- while(cnt <= k)
- {
- printf("\nEnter the message to send\n");
- printf("\nClient: ");
- fgets(buffer,4096,stdin);
- write(sockfd,buffer,4096);
- printf("Serverecho:%s",buffer);
- printf("\n");
- cnt++;
- }
- close(sockfd);
- return 0;
- }
- //Server Side
- #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");
- while(1)
- {
- bzero(buffer,4096);
- read(newsockfd,buffer,4096);
- printf("\nClient message:%s",buffer);
- write(newsockfd,buffer,strlen(buffer)+1);
- printf("\n");
- }
- //close(sockfd);
- //return 0;
- }
- Ques. Simulation of Sliding Window Protocol
- Simulation of Sliding Window Protocol
- /* Simulation of Sliding Window Protocol */
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- int main() {
- int win_size;
- int no_of_packets;
- int base = 0;
- int next_seq_no = 0;
- printf("Enter the window size: ");
- scanf("%d",&win_size);
- printf("Enter no of packets: ");
- scanf("%d",&no_of_packets);
- int *buffer = (int *)malloc(no_of_packets * sizeof(int));
- int i,j;
- printf("\nCurrent buffer:\n");
- for(i=0;i<no_of_packets; i++) {
- buffer[i] = i+1;
- printf("%4d",i+1);
- }
- j=0;
- int choice;
- while(base < no_of_packets) {
- j=0;
- printf("\nTransmitting packets:");
- while( ((base+j+next_seq_no) < no_of_packets) && (j+next_seq_no)<win_size ) {
- printf("%4d",buffer[base+j+next_seq_no]);
- j++;
- }
- printf("\nUnacknowledged packets: ");
- j=0;
- while( (base+j) < no_of_packets && j< win_size) {
- printf("%4d",buffer[base+j]);
- j++;
- }
- printf("\nEnter a packet no to acknowledge that packet or -1 to simulate timout event: ");
- scanf("%d",&choice);
- if(choice < 0) {
- printf("\nRetransmitting packets:");
- j=0;
- while( (base+j) < no_of_packets && j<win_size ) {
- printf("%4d",buffer[base+j]);
- j++;
- }
- next_seq_no = base+win_size;
- }
- else {
- next_seq_no = base+win_size-choice;
- base = choice;
- }
- }
- return 0;
- }
- OSI Model
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- int main()
- {
- char msg[100];
- char temp[100];
- char ah[100]="AH ", ph[100]="PH", sh[100]="SH", th[100]="TH", nh[100]="NH", dh[100]="DH";
- char ahr[100], phr[100], shr[100], thr[100], nhr[100], dhr[100];
- printf("Enter your message is: ");
- scanf("%s",msg);
- printf("Transmitter:\n");
- strcpy(temp,msg);
- strcat(ah,temp);
- printf("Application Layer: %s\n",ah);
- strcpy(temp,ah);
- strcat(ph,temp);
- printf("Presentation Layer: %s\n",ph);
- strcpy(temp,ph);
- strcat(sh,temp);
- printf("Session Layer: %s\n",sh);
- strcpy(temp,sh);
- strcat(th,temp);
- printf("Transport Layer: %s\n",th);
- strcpy(temp,th);
- strcat(nh,temp);
- printf("Network Layer: %s\n",nh);
- strcpy(temp,nh);
- strcat(dh,temp);
- printf("DataLink Layer: %s\n",dh);
- strcpy(temp,dh);
- printf("%s",temp);
- printf("\nMessage reached to Physical Layer and ready to be transmitted.\n\n");
- printf("RECEIVER:\n\n");
- printf("Message entered into Physical Layer");
- int j,k,i=2;
- strcpy(dhr,temp);
- printf("\nDataLink Layer: ");
- printf("%s",dhr);
- printf("\nNetwork Layer: ");
- for(j=i,k=0;temp[j]!='\0';j++,k++)
- {
- nhr[k]=temp[j];
- printf("%c",nhr[k]);
- }
- i=i+2;
- printf("\nTransport Layer: ");
- for(j=i,k=0;temp[j]!='\0';j++,k++)
- {
- thr[k]=temp[j];
- printf("%c",thr[k]);
- }
- i=i+2;
- printf("\nSession Layer: ");
- for(j=i,k=0;temp[j]!='\0';j++,k++)
- {
- shr[k]=temp[j];
- printf("%c",shr[k]);
- }
- i=i+2;
- printf("\nPresentation Layer: ");
- for(j=i,k=0;temp[j]!='\0';j++,k++)
- {
- phr[k]=temp[j];
- printf("%c",phr[k]);
- }
- i=i+2;
- printf("\nApplication Layer: ");
- for(j=i,k=0;temp[j]!='\0';j++,k++)
- {
- ahr[k]=temp[j];
- printf("%c",ahr[k]);
- }
- }
- Frame Length
- #include<iostream>
- using namespace std;
- int main()
- {
- cout << "Enter the number of frames: ";
- int n;
- cin >> n;
- string str;
- string op;
- char size;
- while(n--)
- {
- cout << "Enter the word: ";
- cin >> str;
- size=(str.size())+'0';
- op = op + size + str;
- }
- cout << "The transmitted data is: \n";
- cout << op;
- }
- Hamming Code
- #include<stdio.h>
- #include<conio.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[3]);
- data[6]=data[3]^data[2]^data[1];
- data[5]=data[2]^data[1]^data[0];
- data[4]=data[3]^data[2]^data[0];
- 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[1]^rec[2]^rec[3]^rec[6];
- c2=rec[0]^rec[1]^rec[2]^rec[5];
- c3=rec[0]^rec[2]^rec[3]^rec[4];
- c=c3*4+c2*2+c1 ;
- if(c==0) {
- printf("\ncongratulations there is no error: ");
- } else if( c==1)
- {
- printf("\n Error in 7th bit");
- if(rec[6]==1)
- rec[6]=0;
- else
- rec[6]=1;
- }
- else if(c==2)
- {
- printf("\n Error in 6th bit");
- if(rec[5]==1)
- rec[5]=0;
- else
- rec[5]=1;
- }
- else if(c==3)
- {
- printf("\n Error in 2nd bit");
- if(rec[1]==1)
- rec[1]=0;
- else
- rec[1]=1;
- }
- else if(c==4)
- {
- printf("\n Error in 5th bit");
- if(rec[4]==1)
- rec[4]=0;
- else
- rec[4]=1;
- }
- else if(c==5)
- {
- printf("\n Error in 4th bit");
- if(rec[3]==1)
- rec[3]=0;
- else
- rec[3]=1;
- }
- else if(c==6)
- {
- printf("\n Error in 1st bit");
- if(rec[0]==1)
- rec[0]=0;
- else
- rec[0]=1;
- }
- else if(c==7)
- {
- printf("\n Error in 2nd bit");
- if(rec[1]==1)
- rec[1]=0;
- else
- rec[1]=1;
- }
- printf("\n Corrected pattern\t");
- for (i=0;i<7;i++) {
- printf("%d ",rec[i]);
- }
- getch();
- return 0;
- }
- Bit Stuffing
- #include <iostream>
- using namespace std ;
- int main ()
- {
- char a[25] = "110011111100111111110";
- char b[25] = "", c[25] = "";
- int i = 0, count = 0, j = 0 ;
- cout << endl << "Before stuffing \t: " << a <<endl ;
- for ( i = 0, j = 0 ; a[i] ; i++, j++ )
- {
- if ( a[i] == '1' )
- count++ ;
- else
- count = 0 ;
- b[j] = a[i] ;
- if ( count == 5 )
- {
- b[++j] = '0' ;
- count = 0 ;
- }
- }
- cout << endl << "After stuffing \t: " << b <<endl ;
- for ( i = 0, j = 0 ; b[i] ; i++, j++ )
- {
- if ( b[i] == '1' )
- count++ ;
- else
- count = 0 ;
- c[j] = b[i] ;
- if ( count == 5 )
- {
- i++ ;
- count = 0 ;
- }
- }
- cout << endl << "After de-stuffing \t: " << c << endl << endl;
- }
- Byte Stuffing
- #include <stdio.h>
- #include <conio.h>
- int main()
- {
- char str[100];
- int k=0; int i,j;
- for(j=0;j<100;j++)
- str[j]=' ';
- printf("\n Enter length of data");
- scanf("%d", &k);
- printf("\n Enter data");
- scanf("%s",str);
- char flag='e';
- char ent='z';
- char temp;
- for (i=0;i<k;i++)
- {
- if(str[i]==flag)
- {
- for (j=k+1;j>=i+1;j--)
- {
- temp=str[j-1];
- str[j]=temp;
- }
- k++;
- str[i]='z';
- i++;
- }
- if(str[i]=='z')
- {
- for (j=k+1;j>=i;j--)
- {
- str[j]=str[j-1];
- }
- k++;
- str[i]='z';
- i++;
- }
- }
- for(i=k+1;i>=1;i--)
- {
- temp=str[i-1];
- str[i]=temp;
- }
- str[0]=flag;
- str[k+1]=flag;
- printf("\nOutput:");
- puts(str);
- getch();
- }
- Check Sum
- #include<stdio.h>
- #include<conio.h>
- int adder( int binary1, int binary2)
- {
- int ad=0,sumer[20],i=0,remainder=0;
- while(binary1!=0||binary2!=0)
- {
- sumer[i++] = (binary1 %10 + binary2 %10 + remainder ) % 2;
- remainder = (binary1 %10 + binary2 %10 + remainder ) / 2;
- binary1=binary1/10;
- binary2=binary2/10;
- }
- if(remainder!=0)
- sumer[i++]=remainder;
- --i;
- while(i>=0)
- {
- ad=ad*10+sumer[i];
- --i;
- }
- return ad;
- }
- int main()
- {
- printf("Enter the number of binary numbers for which you want to find the checksum \n");
- int count,rem=0,temp2=0;
- scanf("%d",&count);
- int temp;
- int sum=0;
- printf("Enter a binary number\n");
- scanf("%d",&temp);
- for(int i=2;i<=count;i++)
- {
- if(i==2)
- {
- printf("Enter a binary number\n");
- scanf("%d",&temp2);
- sum=sum+adder(temp2, temp);
- }
- else
- {
- printf("Enter a binary number\n");
- scanf("%d",&temp2);
- sum=adder(temp2, sum);
- }
- }
- printf("Sum=%d\n",sum);
- int newsum[100],c=0;
- for(int i=0;i<100;i++)
- newsum[i]=0;
- while(sum>0)
- {
- rem=sum%10;
- if(rem==0)
- {
- newsum[c]=1;
- }
- else if(rem==1)
- {
- newsum[c]=0;
- }
- c++;
- sum/=10;
- }
- c=c-1;
- printf("Checksum=");
- while(c>=0)
- {
- printf("%d",newsum[c]);
- c-=1;
- }
- return 0;
- }
- CRC Calculator
- #include <stdio.h>
- #include <conio.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]);
- getch();
- }
- 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();
- }
- Client server based Sliding window protocol
- SENDER
- #include<sys/socket.h>
- #include<sys/types.h>
- #include<netinet/in.h>
- #include<netdb.h>
- #include<stdio.h>
- #include<string.h>
- #include<stdlib.h>
- #include<unistd.h>
- #include<errno.h> int main()
- {
- int sock,bytes_received,connected,true=1,i=1,s,f=0,sin_size; char send_data[1024],data[1024],c,fr[30]=" ";
- struct sockaddr_in server_addr,client_addr; if((sock=socket(AF_INET,SOCK_STREAM,0))==-1)
- {
- perror("Socket not created"); exit(1);
- }
- if(setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,&true,sizeof(int))==-1)
- {
- perror("Setsockopt"); exit(1);
- }
- server_addr.sin_family=AF_INET; server_addr.sin_port=htons(17000); server_addr.sin_addr.s_addr=INADDR_ANY;
- if(bind(sock,(struct sockaddr *)&server_addr,sizeof(struct sockaddr))==-1)
- {
- perror("Unable to bind"); exit(1);
- }
- if(listen(sock,5)==-1)
- {
- perror("Listen"); exit(1);
- }
- fflush(stdout); sin_size=sizeof(struct sockaddr_in);
- connected=accept(sock,(struct sockaddr *)&client_addr,&sin_size); while(strcmp(fr,"exit")!=0)
- {
- printf("Enter Data Frame %d:(Enter exit for End): ",i); scanf("%s",fr);
- send(connected,fr,strlen(fr),0); recv(sock,data,1024,0); if(strlen(data)!=0)
- printf("I got an acknowledgement : %s\n",data); fflush(stdout);
- i++;
- }
- close(sock); return (0);
- }
- RECEIVER
- #include<sys/socket.h>
- #include<sys/types.h>
- #include<netinet/in.h>
- #include<netdb.h>
- #include<stdio.h>
- #include<string.h>
- #include<stdlib.h>
- #include<unistd.h>
- #include<errno.h> int main()
- {
- int sock,bytes_received,i=1; char receive[30];
- struct hostent *host;
- struct sockaddr_in server_addr; host=gethostbyname("127.0.0.1"); if((sock=socket(AF_INET,SOCK_STREAM,0))==-1)
- {
- perror("Socket not created"); exit(1);
- }
- printf("Socket created"); server_addr.sin_family=AF_INET; server_addr.sin_port=htons(17000); server_addr.sin_addr=*((struct in_addr *)host->h_addr); bzero(&(server_addr.sin_zero),8);
- if(connect(sock,(struct sockaddr *)&server_addr,sizeof(struct sockaddr))==-1)
- {
- perror("Connect"); exit(1);
- }
- while(1)
- {
- bytes_received=recv(sock,receive,20,0); receive[bytes_received]='\0'; if(strcmp(receive,"exit")==0||strcmp(receive,"exit")==0)
- {
- close(sock); break;
- }
- else
- {
- if(strlen(receive)<10)
- {
- printf("\n Frame %d data %s received\n",i,receive); send(0,receive,strlen(receive),0);
- }
- else
- {
- send(0,"negative",10,0);
- } i++;
- }
- }
- close(sock); return(0);
- }
- OUTPUT SENDER
- $ cc sender.c
- $ ./a.out
- Enter Data Frame 1:(Enter exit for End): saveetha Enter Data Frame 2:(Enter exit for End): mca Enter Data Frame 3:(Enter exit for End): exit
- $
- RECEIVER
- $ cc receiver.c
- $ ./a.out Socket created
- Frame 1 data saveetha received Frame 2 data mca received
- $
- HOST INFORMATION
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #include <sys/socket.h>
- #include <errno.h>
- #include <netdb.h>
- #include <arpa/inet.h>
- int get_ip(char * , char *);
- int main(int argc , char *argv[])
- {if(argc <2)
- {printf("Please provide a hostname");
- exit(1);}
- char *hostname = argv[1];
- char ip[100];
- get_ip(hostname , ip);
- printf("%s resolved to %s" , hostname , ip);
- printf("\n");}
- int get_ip(char * hostname , char* ip)
- { struct hostent *he;
- struct in_addr **addr_list;
- int i;
- if ( (he = gethostbyname( hostname ) ) == NULL)
- { herror("gethostbyname");
- return 1;}
- addr_list = (struct in_addr **) he->h_addr_list;
- for(i = 0; addr_list[i] != NULL; i++)
- { strcpy(ip , inet_ntoa(*addr_list[i]) );
- return 0;}
- return 1;
- }
- DAY TIME SERVER
- #include<netinet/in.h>
- #include<sys/socket.h>
- main( )
- {
- struct sockaddr_in sa;
- struct sockaddr_in cli;
- int sockfd,coontfd;
- int len,ch;
- char str[100];
- time_t tick;
- sockfd=socket(AF_INET,SOCK_STREAM,0);
- if(socket<0)
- {
- printf(error in socket\n);
- exit(0);
- }
- else
- printf(Socket Opened);
- bzero(7sa,sizeof(sa));
- sa.sin_port=htons(5600);
- sa.sin_addr.s_addr=htonl(0);
- if(bind(sockfd,(struct sockaddr*)&sa,sizeof(sa))<0)
- {
- printf(Error in binding\n);
- }
- else
- printf(Binded Successfully);
- listen(sockfd,50)
- for(;;)
- {
- len=sizeof(ch);
- conntfd=accept(sockfd,(struct sockaddr*)&cli,&len);
- printf(Accepted);
- tick=ctime(NULL);
- snprintf(str,sizeof(str),%s,ctime(&tick));
- write(conntfd,str,100);
- }
- }
- DAY TIME CLIENT
- #include<netinet/in.h>
- #include<sys/socket.h>
- main()
- {
- struct sockaddr_in sa,cli;
- int n,sockfd;
- int len;
- char buff[100];
- sockfd=socket(AF_INET,SOCK_STREAM,0);
- if(sockfd<0)
- {
- printf(Error in Socket);
- exit(0);
- }
- else
- printf(Socket is Opened);
- bzero(&sa,sizeof(sa));
- sa.sin_family=AF_INET;
- sa.sin_port=htons(5600);
- if(connect(sockfd,(struct sockaddr*)&sa,sizeof(sa))<0)
- {
- printf(Error in connection failed);
- exit(0);
- }
- else
- printf(connected successfully):
- if(n=read(sockfd,buff,sizeof(buff))<0)
- {
- printf(Error in Reading);
- exit(0);
- }
- else
- {
- printf(Message Read %s,buff);
- buff[n]=\0;
- printf(%s,buff);
- }
- }
- Chat App TCP IP - client
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- #include<sys/socket.h>
- #include<netdb.h>
- #include<arpa/inet.h>
- void error(char *msg)
- {
- perror(msg);
- exit(1);
- }
- int main(int argc,char* argv[])
- {
- int sockfd,portno;
- char recvbuffer[256],sendbuffer[256];
- struct sockaddr_in ser_addr;
- struct hostent* server;
- int i;
- if(argc<3)
- error("./client hostname portno");
- server=gethostbyname(argv[1]);
- portno=atoi(argv[2]);
- bzero((char*)&ser_addr,sizeof(ser_addr));
- ser_addr.sin_family=AF_INET;
- bcopy((char*)server->h_addr,(char*)&ser_addr.sin_addr.s_addr,server->h_length);
- ser_addr.sin_port=htons(portno);
- sockfd=socket(AF_INET,SOCK_STREAM,0);
- if(sockfd==-1)
- error("error in socket descriptor");
- printf("\nsocket created\n");
- if(connect(sockfd,(struct sockaddr*)&ser_addr,sizeof(ser_addr))==-1)
- error("error in connect");
- printf("\nconnect successfully\n");
- bzero(recvbuffer,sizeof(recvbuffer));
- bzero(sendbuffer,sizeof(sendbuffer));
- i=fork();
- if(i==0)
- {
- printf("\nfork reading\n");
- while(1)
- {
- if(read(sockfd,recvbuffer,sizeof(recvbuffer))<0)
- error("error in reading");
- printf("\nserver:%s\n",recvbuffer);
- bzero(recvbuffer,sizeof(recvbuffer));
- }
- }
- else
- {
- printf("\n fork writing\n");
- while(1)
- {
- scanf("%s",sendbuffer);
- if(write(sockfd,sendbuffer,sizeof(sendbuffer))<0)
- error("error in writing");
- }
- }
- close(sockfd);
- return 0;
- }
- Chat App TCP IP - Server
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- #include<sys/socket.h>
- #include<netdb.h>
- #include<arpa/inet.h>
- void error(char *msg)
- {
- perror(msg);
- exit(1);
- }
- int main(int argc,char* argv[])
- {
- int sockfd,newsockfd,portno;
- char recvbuffer[256],sendbuffer[256];
- struct sockaddr_in ser_addr,cli_addr;
- int i;
- if(argc<2)
- error("./server portno");
- portno=atoi(argv[1]);
- bzero((char*)&ser_addr,sizeof(ser_addr));
- ser_addr.sin_family=AF_INET;
- ser_addr.sin_addr.s_addr=INADDR_ANY;
- ser_addr.sin_port=htons(portno);
- sockfd=socket(AF_INET,SOCK_STREAM,0);
- if(sockfd==-1)
- error("error in socket descriptor");
- printf("\nsocket created\n");
- if(bind(sockfd,(struct sockaddr*)&ser_addr,sizeof(ser_addr))==-1)
- error("error in binding");
- printf("\nbinding successful\n");
- if(listen(sockfd,5)==-1)
- error("error in listening");
- printf("\nlisten successfully\n");
- bzero(recvbuffer,sizeof(recvbuffer));
- bzero(sendbuffer,sizeof(sendbuffer));
- newsockfd=accept(sockfd,(struct sockaddr*)NULL,NULL);
- i=fork();
- if(i==0)
- {
- printf("\nfork reading\n");
- while(1)
- {
- if(read(newsockfd,recvbuffer,sizeof(recvbuffer))<0)
- error("error in reading");
- printf("\nclient:%s\n",recvbuffer);
- bzero(recvbuffer,sizeof(recvbuffer));
- }
- }
- else
- {
- printf("\n fork writing\n");
- while(1)
- {
- scanf("%s",sendbuffer);
- if(write(newsockfd,sendbuffer,sizeof(sendbuffer))<0)
- error("error in writing");
- }
- }
- close(newsockfd);
- return 0;
- }
- File Transfer Client
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- #include<sys/socket.h>
- #include<netdb.h>
- #include<arpa/inet.h>
- void error(char *msg)
- {
- perror(msg);
- exit(1);
- }
- int main(int argc,char* argv[])
- {
- int sockfd,portno;
- char buffer[256];
- struct sockaddr_in ser_addr;
- struct hostent* server;
- if(argc<3)
- error("./client hostname portno");
- server=gethostbyname(argv[1]);
- portno=atoi(argv[2]);
- bzero((char*)&ser_addr,sizeof(ser_addr));
- ser_addr.sin_family=AF_INET;
- bcopy((char*)server->h_addr,(char*)&ser_addr.sin_addr.s_addr,server->h_length);
- ser_addr.sin_port=htons(portno);
- sockfd=socket(AF_INET,SOCK_STREAM,0);
- if(sockfd==-1)
- error("error in socket descriptor");
- printf("\nsocket created\n");
- if(connect(sockfd,(struct sockaddr*)&ser_addr,sizeof(ser_addr))==-1)
- error("error in connect");
- printf("\nconnect successfully\n");
- FILE* fp;
- int nread;
- fp=fopen("sample1.txt","r");
- if(fp==NULL)
- error("error in file opening");
- while(1)
- {
- nread=fread(buffer,1,sizeof(buffer),fp);
- if(nread>0)
- write(sockfd,buffer,nread);
- if(nread<256)
- {
- if(feof(fp))
- printf("\nEnd of file\n");
- if(ferror(fp))
- printf("\n error in file\n");
- break;
- }
- }
- close(sockfd);
- return 0;
- }
- File Transfer Server
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- #include<sys/socket.h>
- #include<netdb.h>
- #include<arpa/inet.h>
- void error(char *msg)
- {
- perror(msg);
- exit(1);
- }
- int main(int argc,char* argv[])
- {
- int sockfd,newsockfd,portno;
- char buffer[256];
- struct sockaddr_in ser_addr;
- if(argc<2)
- error("./server portno");
- portno=atoi(argv[1]);
- bzero((char*)&ser_addr,sizeof(ser_addr));
- ser_addr.sin_family=AF_INET;
- ser_addr.sin_addr.s_addr=INADDR_ANY;
- ser_addr.sin_port=htons(portno);
- sockfd=socket(AF_INET,SOCK_STREAM,0);
- if(sockfd==-1)
- error("error in socket descriptor");
- printf("\nsocket created\n");
- if(bind(sockfd,(struct sockaddr*)&ser_addr,sizeof(ser_addr))==-1)
- error("error in binding");
- printf("\nbinding successful\n");
- if(listen(sockfd,5)==-1)
- error("error in listening");
- printf("\nlisten successfully\n");
- newsockfd=accept(sockfd,NULL,NULL);
- FILE* fp;
- int nread;
- fp=fopen("sample.txt","ab");
- if(fp==NULL)
- error("error in file opening");
- while((nread=read(newsockfd,buffer,sizeof(buffer)))>0)
- {
- fwrite(buffer,1,nread,fp);
- bzero(buffer,sizeof(buffer));
- }
- close(newsockfd);
- return 0;
- }
- Message Transfer Client UDP
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- #include<sys/socket.h>
- #include<netdb.h>
- #include<arpa/inet.h>
- void error(char *msg)
- {
- perror(msg);
- exit(1);
- }
- int main(int argc,char* argv[])
- {
- int sockfd,portno;
- char buffer[256];
- struct sockaddr_in ser_addr;
- struct hostent* server;
- if(argc<3)
- error("./client hostname portno");
- server=gethostbyname(argv[1]);
- portno=atoi(argv[2]);
- bzero((char*)&ser_addr,sizeof(ser_addr));
- ser_addr.sin_family=AF_INET;
- bcopy((char*)server->h_addr,(char*)&ser_addr.sin_addr.s_addr,server->h_length);
- ser_addr.sin_port=htons(portno);
- sockfd=socket(AF_INET,SOCK_STREAM,0);
- if(sockfd==-1)
- error("error in socket descriptor");
- printf("\nsocket created\n");
- if(connect(sockfd,(struct sockaddr*)&ser_addr,sizeof(ser_addr))==-1)
- error("error in connect");
- printf("\nconnect successfully\n");
- bzero(buffer,sizeof(buffer));
- while(1)
- {
- printf("\nEnter message for server:");
- scanf("%s",buffer);
- if(write(sockfd,buffer,sizeof(buffer))<0)
- printf("writing error");
- if(read(sockfd,buffer,sizeof(buffer))<0)
- printf("\n message read error\n");
- printf("\nmessage got from client:%s",buffer);
- bzero(buffer,sizeof(buffer));
- }
- close(sockfd);
- return 0;
- }
- Username password server
- #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 null_character;
- 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]=null_character;
- 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]=null_character;
- 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);
- }
- }
- Username password 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;
- char null_character;
- 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]= null_character;
- 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]=null_character;
- printf("Server Sent : %s\n", buffer3);
- close(sock_des);
- }
- Message Transfer Server UDP
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- #include<sys/socket.h>
- #include<netdb.h>
- #include<arpa/inet.h>
- void error(char *msg)
- {
- perror(msg);
- exit(1);
- }
- int main(int argc,char* argv[])
- {
- int sockfd,newsockfd,portno;
- char buffer[256];
- struct sockaddr_in ser_addr;
- if(argc<2)
- error("./server portno");
- portno=atoi(argv[1]);
- bzero((char*)&ser_addr,sizeof(ser_addr));
- ser_addr.sin_family=AF_INET;
- ser_addr.sin_addr.s_addr=INADDR_ANY;
- ser_addr.sin_port=htons(portno);
- sockfd=socket(AF_INET,SOCK_STREAM,0);
- if(sockfd==-1)
- error("error in socket descriptor");
- printf("\nsocket created\n");
- if(bind(sockfd,(struct sockaddr*)&ser_addr,sizeof(ser_addr))==-1)
- error("error in binding");
- printf("\nbinding successful\n");
- if(listen(sockfd,5)==-1)
- error("error in listening");
- printf("\nlisten successfully\n");
- newsockfd=accept(sockfd,NULL,NULL);
- bzero(buffer,sizeof(buffer));
- while(1)
- {
- if(read(newsockfd,buffer,sizeof(buffer))<0)
- printf("\n message read error\n");
- printf("\nmessage got from client:%s",buffer);
- bzero(buffer,sizeof(buffer));
- printf("\nEnter message for client:");
- scanf("%s",buffer);
- if(write(newsockfd,buffer,sizeof(buffer))<0)
- printf("writing error");
- }
- close(newsockfd);
- return 0;
- }
- ECHO - UDP
- #include <stdio.h> /* standard C i/o facilities */
- #include <stdlib.h> /* needed for atoi() */
- #include <unistd.h> /* defines STDIN_FILENO, system calls,etc */
- #include <sys/types.h> /* system data type definitions */
- #include <sys/socket.h> /* socket specific definitions */
- #include <netinet/in.h> /* INET constants and stuff */
- #include <arpa/inet.h> /* IP address conversion stuff */
- #include <netdb.h> /* gethostbyname */
- /* this routine echos any messages (UDP datagrams) received */
- #define MAXBUF 1024*1024
- void echo( int sd ) {
- int len,n;
- char bufin[MAXBUF];
- struct sockaddr_in remote;
- /* need to know how big address struct is, len must be set before the
- call to recvfrom!!! */
- len = sizeof(remote);
- while (1) {
- /* read a datagram from the socket (put result in bufin) */
- n=recvfrom(sd,bufin,MAXBUF,0,(struct sockaddr *)&remote,&len);
- /* print out the address of the sender */
- printf("Got a datagram from %s port %d\n",
- inet_ntoa(remote.sin_addr), ntohs(remote.sin_port));
- if (n<0) {
- perror("Error receiving data");
- } else {
- printf("GOT %d BYTES\n",n);
- /* Got something, just send it back */
- sendto(sd,bufin,n,0,(struct sockaddr *)&remote,len);
- }
- }
- }
- /* server main routine */
- int main() {
- int ld;
- struct sockaddr_in skaddr;
- int length;
- /* create a socket
- IP protocol family (PF_INET)
- UDP protocol (SOCK_DGRAM)
- */
- if ((ld = socket( PF_INET, SOCK_DGRAM, 0 )) < 0) {
- printf("Problem creating socket\n");
- exit(1);
- }
- /* establish our address
- address family is AF_INET
- our IP address is INADDR_ANY (any of our IP addresses)
- the port number is assigned by the kernel
- */
- skaddr.sin_family = AF_INET;
- skaddr.sin_addr.s_addr = htonl(INADDR_ANY);
- skaddr.sin_port = htons(0);
- if (bind(ld, (struct sockaddr *) &skaddr, sizeof(skaddr))<0) {
- printf("Problem binding\n");
- exit(0);
- }
- /* find out what port we were assigned and print it out */
- length = sizeof( skaddr );
- if (getsockname(ld, (struct sockaddr *) &skaddr, &length)<0) {
- printf("Error getsockname\n");
- exit(1);
- }
- /* port number's are network byte order, we have to convert to
- host byte order before printing !
- */
- printf("The server UDP port number is %d\n",ntohs(skaddr.sin_port));
- /* Go echo every datagram we get */
- echo(ld);
- return(0);
- }
- list all ports hosting a TCP server in a specified host.
- #include(stdio.h)
- #include(arpa/inet.h)
- #include(netdb.h)
- #include(stdlib.h)
- int main(int argc,char* argv[])
- {
- struct hostent *host;
- struct sockaddr_in server_addr;
- int sock_des,port;
- if(argc != 2)
- {
- printf(Usage ;./a.out hostname \n);
- exit(1);
- }
- if ((host=gethostbyname(argv[1])) == NULL)
- {
- printf(Unknown Host\n);
- exit(1);
- }
- for(port = 0; port<= 65535; port++)
- {
- 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)
- {
- printf(port %d is open \n,port);
- }
- close(sock_des);
- }
- return 0 ;
- }
- ****EOF****
- 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;
- clrscr();
- 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();
- }
Add Comment
Please, Sign In to add comment