Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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****
Add Comment
Please, Sign In to add comment