Guest User

Networks

a guest
Nov 4th, 2016
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 22.38 KB | None | 0 0
  1. OSI
  2.  
  3. #include<stdio.h>
  4. #include<string.h>
  5. int main()
  6. {
  7.     char temp[20],str[20];
  8.     printf("Enter the string");
  9.     scanf("%s",&str);
  10.     printf("transmitter");
  11.     strcpy(temp,str);
  12.     printf("Application layer: ");
  13.     strcpy(temp,"AL");
  14.     strcat(temp,str);
  15.     printf("%s",temp);
  16.     printf("Presentation Layer");
  17.     strcpy(temp,"PL");
  18.     strcat(temp,str);
  19.     printf("%s\nSession Layer",temp);
  20.     strcpy(temp,"SL");
  21.     strcat(temp,str);
  22.     printf("%s\ntransport layer",temp);
  23.     strcpy(temp,"TL");
  24.     strcat(temp,str);
  25.     printf("%s\nNetwork layer",temp);
  26.     strcpy(temp,"NL");
  27.     strcat(temp,str);
  28.     printf("%s\nData Link Layer",temp);
  29.     strcpy(temp,"DLL");
  30.     strcat(temp,str);
  31.     printf("%s\nReceiver",temp);
  32.     int i;
  33.     printf("\nData Link Layer: ");
  34.     for(i=0;i<strlen(str);i++)
  35.     {printf("%c",str[i]);
  36.     }
  37.     printf("\nNetwork layer: ");
  38.     for(i=4;i<strlen(str);i++)
  39.     printf("%c",str[i]);
  40.     printf("\nTransport layer: ");
  41.         for(i=6;i<strlen(str);i++)
  42.         {
  43.        
  44.     printf("%c",str[i]);}
  45.     printf("\nSession layer: ");
  46.     for(i=8;i<strlen(str);i++)
  47.         {
  48.        
  49.     printf("%c",str[i]);}
  50.     printf("\nPresentation layer: ");
  51.         for(i=10;i<strlen(str);i++)
  52.         {
  53.        
  54.     printf("%c",str[i]);}
  55.     printf("\nApplication layer: ");
  56.     for(i=12;i<strlen(str);i++)
  57.     {printf("%c",str[i]);
  58.     }
  59. }
  60.  
  61. HAMMING CODE
  62.  
  63. #include<stdio.h>
  64. int main() {
  65.     int data[7],rec[7],i,c1,c2,c3,c;
  66.     printf("this works for message of 4bits in size \nenter message bit one by one:  ");
  67.     scanf("%d%d%d%d",&data[0],&data[1],&data[2],&data[4]);
  68.     data[6]=data[0]^data[2]^data[4];
  69.     data[5]=data[0]^data[1]^data[4];
  70.     data[3]=data[0]^data[1]^data[2];
  71.     printf("\nthe encoded bits are given below: \n");
  72.     for (i=0;i<7;i++) {
  73.         printf("%d ",data[i]);
  74.     }
  75.     printf("\nenter the received data bits one by one: ");
  76.     for (i=0;i<7;i++) {
  77.         scanf("%d",&rec[i]);
  78.     }
  79.     c1=rec[6]^rec[4]^rec[2]^rec[0];
  80.     c2=rec[5]^rec[4]^rec[1]^rec[0];
  81.     c3=rec[3]^rec[2]^rec[1]^rec[0];
  82.     c=c3*4+c2*2+c1 ;
  83.     if(c==0) {
  84.         printf("\ncongratulations there is no error: ");
  85.     } else {
  86.         printf("\nerron on the postion: %d\nthe correct message is \n",c);
  87.         if(rec[7-c]==0)
  88.                     rec[7-c]=1; else
  89.                     rec[7-c]=0;
  90.         for (i=0;i<7;i++) {
  91.             printf("%d ",rec[i]);
  92.         }
  93.     }
  94. return 0;
  95. }
  96.  
  97. CHARACTER COUNT
  98.  
  99. #include<stdio.h>
  100. #include<string.h>
  101. int main()
  102. {
  103.     int t[50],i,n;
  104.     char s[50][50];
  105.     scanf("%d",&n);
  106.     for(i=0;i<n;i++)
  107.     {
  108.         scanf("%s",s[i]);
  109.     }
  110.     for(i=0;i<n;i++)
  111.     t[i]=strlen(s[i]);
  112.     printf("The transmitted data is \n");
  113.     for(i=0;i<n;i++)
  114.     {
  115.         printf("%d",t[i]+1);
  116.         printf("%s",s[i]);
  117.     }
  118. }
  119.  
  120. BIT STUFFING
  121.  
  122. #include<stdio.h>
  123. #include<conio.h>
  124. #include<string.h>
  125. void main() {
  126.     int i, j,count=0,nl;
  127.     char str[100];
  128.     clrscr();
  129.     printf("enter the bit string:  ");
  130.     gets(str);
  131.     for (i=0;i<strlen(str);i++) {
  132.         count=0;
  133.         //the following code search the six ones in given string
  134.         for (j=i;j<=(i+5);j++) {
  135.             if(str[j]=='1') {
  136.                 count++;
  137.             }
  138.         }
  139.         //if there is six ones then folling code execute to bit stuffing after five ones
  140.         if(count==6) {
  141.             nl=strlen(str)+2;
  142.             for (;nl>=(i+5);nl--) {
  143.                 str[nl]=str[nl-1];
  144.             }
  145.             str[i+5]='0';
  146.             i=i+7;
  147.         }
  148.     }
  149.     puts(str);
  150.     getch();
  151. }
  152.  
  153. BYTE STUFFING
  154.  
  155. #include<stdio.h>
  156. #include<conio.h>
  157. void main()
  158. {
  159. char frame[100],str[50][50];
  160. char flag='z';
  161. char esc='x';
  162. int i,j,k=0,n;
  163. frame[k++]='z';
  164. printf("Enter no.of String ::\t");
  165. scanf("%d",&n);
  166. printf("Enter String \n");
  167. for(i=0;i<=n;i++)
  168.   {
  169. gets(str[i]);
  170.   }
  171. printf("You entered ::\n");
  172. for(i=0;i<=n;i++)
  173.    {
  174. puts(str[i]);
  175.    }
  176.  
  177. printf("\n");
  178. for(i=1;i<=n;i++)
  179.   {
  180. for(j=0;j<strlen(str[i]);j++)
  181.       {
  182.     if(str[i][j]!=flag&&str[i][j]!=esc)
  183.     {
  184.         frame[k++]=str[i][j];
  185.     }
  186.     else{
  187.         frame[k++]='x';
  188.         frame[k++]=str[i][j];
  189.     }
  190.       }
  191.   }
  192.  
  193. frame[k++]='z';
  194. frame[k++]='\0';
  195. printf("------------------------------\n");
  196. printf("Byte stuffing at sender side:\n\n");
  197. printf("------------------------------\n");
  198. for(i=0;i<k;i++)
  199.   {
  200. printf("%c",frame[i]);
  201.   }
  202. printf("\n------------------------------");
  203. printf("\nByte stuffing at receiver side\n\n");
  204. printf("------------------------------\n");
  205. for(i=0;i<k;i++)
  206.   {
  207. if(frame[i]=='x'|| frame[i]=='z')
  208.      {
  209. i++;
  210.      }
  211. printf("%c",frame[i]);
  212.   }
  213. getch();
  214. }
  215.  
  216. CHECKSUM
  217.  
  218. #include<stdio.h>
  219. #include<math.h>
  220.  
  221.  int sender(int b[10],int k)
  222.  {
  223.             int checksum,sum=0,i;
  224.             printf("\n****SENDER****\n");
  225.  
  226.             for(i=0;i<k;i++)
  227.             sum+=b[i];
  228.             printf("SUM IS: %d",sum);
  229.  
  230.         checksum=~sum;
  231.         printf("\nSENDER's CHECKSUM IS:%d",checksum);
  232.         return checksum;
  233. }
  234.  
  235. int receiver(int c[10],int k,int scheck)
  236. {
  237.             int checksum,sum=0,i;
  238.         printf("\n\n****RECEIVER****\n");
  239.         for(i=0;i<k;i++)
  240.             sum+=c[i];
  241.         printf(" RECEIVER SUM IS:%d",sum);
  242.         sum=sum+scheck;
  243.         checksum=~sum;
  244.         printf("\nRECEIVER's CHECKSUM IS:%d",checksum);
  245.             return checksum;
  246.   }
  247.    main()
  248.    {
  249.         int a[10],i,m,scheck,rcheck;
  250.         printf("\nENTER SIZE OF THE STRING:");
  251.         scanf("%d",&m);
  252.         printf("\nENTER THE ELEMENTS OF THE ARRAY:");
  253.         for(i=0;i<m;i++)
  254.         scanf("%d",&a[i]);
  255.         scheck=sender(a,m);
  256.         rcheck=receiver(a,m,scheck);
  257.         if(rcheck==0)
  258.             printf("\n\nNO ERROR IN TRANSMISSION\n\n");
  259.         else
  260.             printf("\n\nERROR DETECTED");
  261.    }
  262.  
  263.  
  264. CRC
  265.  
  266. #include <conio.h>
  267.  #include <string.h>
  268.  #include<stdio.h>
  269.  void main()
  270.  {
  271.  int i,j,keylen,msglen;
  272.  char input[100], key[30],temp[30],quot[100],rem[30],key1[30];
  273.  printf("Enter Data: ");
  274.  gets(input);
  275.  printf("Enter Key: ");
  276.  gets(key);
  277.  keylen=strlen(key);
  278.  msglen=strlen(input);
  279.  strcpy(key1,key);
  280.  for(i=0;i<keylen-1;i++)
  281.  {
  282.  input[msglen+i]='0';
  283.  }
  284.  for(i=0;i<keylen;i++)
  285.  temp[i]=input[i];
  286.  for(i=0;i<msglen;i++)
  287.  {
  288.  quot[i]=temp[0];
  289.  if(quot[i]=='0')
  290.  for(j=0;j<keylen;j++)
  291.  key[j]='0';
  292.  else
  293.  for(j=0;j<keylen;j++)
  294.  key[j]=key1[j];
  295.  for(j=keylen-1;j>0;j--)
  296.  {
  297.  if(temp[j]==key[j])
  298.  rem[j-1]='0';
  299.  else
  300.  rem[j-1]='1';
  301.  }
  302.  rem[keylen-1]=input[i+keylen];
  303.  strcpy(temp,rem);
  304.  }
  305.  strcpy(rem,temp);
  306.  printf("\nQuotient is ");
  307.  for(i=0;i<msglen;i++)
  308.  printf("%c",quot[i]);
  309.  printf("\nRemainder is ");
  310.  for(i=0;i<keylen-1;i++)
  311.  printf("%c",rem[i]);
  312.  printf("\nFinal data is: ");
  313.  for(i=0;i<msglen;i++)
  314.  printf("%c",input[i]);
  315.  for(i=0;i<keylen-1;i++)
  316.  printf("%c",rem[i]);
  317.  getch();
  318.  }
  319.  
  320. SLIDING WINDOW
  321.  
  322. #include<stdio.h>
  323. #include<conio.h>
  324. void main()
  325. {
  326. char sender[50],receiver[50];
  327. int i,winsize;
  328.  printf("\n ENTER THE WINDOWS SIZE : ");
  329. scanf("%d",&winsize);
  330.  printf("\n SENDER WINDOW IS EXPANDED TO STORE MESSAGE OR WINDOW \n");
  331.  printf("\n ENTER THE DATA TO BE SENT: ");
  332. fflush(stdin);
  333. gets(sender);
  334. for(i=0;i<winsize;i++)
  335. receiver[i]=sender[i];
  336. receiver[i]=NULL;
  337.  printf("\n MESSAGE SEND BY THE SENDER:\n");
  338.  puts(sender);
  339.  printf("\n WINDOW SIZE OF RECEIVER IS EXPANDED\n");
  340.  printf("\n ACKNOWLEDGEMENT FROM RECEIVER \n");
  341. for(i=0;i<winsize;i++);
  342. printf("\n ACK:%d",i);
  343.  printf("\n MESSAGE RECEIVED BY RECEIVER IS : ");
  344.  puts(receiver);
  345.  printf("\n WINDOW SIZE OF RECEIVER IS SHRINKED \n");
  346. getch();
  347. }
  348.  
  349. CHAT APPLICATION
  350.  
  351. //server
  352. #include<sys/types.h>
  353. #include<sys/socket.h>
  354. #include<netinet/in.h>
  355. #include<arpa/inet.h>
  356. #include<stdio.h>
  357. #include<stdlib.h>
  358. #include<unistd.h>
  359. #include<errno.h>
  360. #include<string.h>
  361. int main(int argc, char *argv[]){
  362. int sockfd,newsockfd,clilen;
  363. int port,n;
  364. char buffer[256];
  365. struct sockaddr_in serv_addr,cli_addr;
  366. if(argc < 2){
  367.  printf("No port provided!");
  368.  exit(1);
  369. }
  370. sockfd = socket(AF_INET,SOCK_STREAM,0);
  371. if(sockfd < 0){
  372.  perror("Error during socet creation!");
  373.  exit(2);
  374. }
  375. bzero((char*) &serv_addr, sizeof(serv_addr));
  376. port = atoi(argv[1]);
  377. serv_addr.sin_family = AF_INET;
  378. serv_addr.sin_addr.s_addr = INADDR_ANY;
  379. serv_addr.sin_port = htons(port);
  380. if(bind(sockfd,(struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0){
  381.  perror("Error during binding!");
  382.  exit(3);
  383. }
  384. listen(sockfd,5);
  385. clilen = sizeof(cli_addr);
  386. newsockfd = accept(sockfd,(struct sockaddr *) &cli_addr, &clilen);
  387. if(newsockfd < 0){
  388.  perror("Error on accept!");
  389.  exit(4);
  390. }
  391. do{
  392.  bzero(buffer,256);
  393.  n = read(newsockfd,buffer,255);
  394.  if(n < 0){
  395.  perror("Error reading!");
  396.  exit(5);
  397.  }
  398.  printf("Message is %s \n", buffer);
  399.  bzero(buffer,256);
  400.  fgets(buffer,255,stdin);
  401.  n = write(newsockfd,buffer,255);
  402.  if(n < 0){
  403.  perror("Error in writing");
  404.  exit(6);
  405.  }
  406. }while(1);
  407. return 0;
  408. }
  409.  
  410. //client
  411. #include<sys/types.h>
  412. #include<sys/socket.h>
  413. #include<netinet/in.h>
  414. #include<arpa/inet.h>
  415. #include<stdio.h>
  416. #include<stdlib.h>
  417. #include<unistd.h>
  418. #include<errno.h>
  419. #include<string.h>
  420. #include<netdb.h>
  421. int main(int argc, char *argv[]){
  422. int sockfd,port,n;
  423. struct sockaddr_in serv_addr;
  424. struct hostent *server;
  425. char buffer[256];
  426. if(argc < 3){
  427.  printf("usage %s hostname port\n",argv[0]);
  428.  exit(1);
  429. }
  430. port = atoi(argv[2]);
  431. sockfd = socket(AF_INET, SOCK_STREAM, 0);
  432. if(sockfd < 0){
  433.  perror("Error during socket creation!");
  434.  exit(2);
  435. }
  436. server = gethostbyname(argv[1]);
  437. if(server == NULL){
  438.  printf("No such host! \n");
  439.  exit(3);
  440. }
  441. bzero((char*) &serv_addr,sizeof(serv_addr));
  442. serv_addr.sin_family = AF_INET;
  443. bcopy((char*) server->h_addr,(char*)&serv_addr.sin_addr.s_addr,server->h_length);
  444. serv_addr.sin_port = htons(port);
  445. if(connect(sockfd,&serv_addr,sizeof(serv_addr)) < 0){
  446.  perror("Error connecting!");
  447.  exit(4);
  448. }
  449. do{
  450.  printf("Enter message : ");
  451.  bzero(buffer,256);
  452.  fgets(buffer,255,stdin);
  453.  n = write(sockfd,buffer,strlen(buffer));
  454.  if(n < 0){
  455.  perror("Error in Writing");
  456.  exit(5);
  457.  }
  458.  bzero(buffer,256);
  459.  n = read(sockfd,buffer,255);
  460.  if(n < 0){
  461.  perror("Error Reading");
  462.  exit(6);
  463.  }
  464.  printf("%s \n",buffer);
  465. }while(1);
  466. return 0;
  467. }
  468.  
  469. UDP FILE TRANSER
  470.  
  471. //server
  472. #include <arpa/inet.h>
  473. #include <netinet/in.h>
  474. #include <stdio.h>
  475. #include <sys/types.h>
  476. #include <sys/socket.h>
  477. #include <unistd.h>
  478. #include <stdlib.h>
  479. #include <string.h>
  480. #define BUFLEN 512
  481. #define PORT 9930
  482. void err(char *s)
  483. {
  484. perror(s);
  485. exit(1);
  486. }
  487. int main(int argc, char** argv)
  488. {
  489. struct sockaddr_in serv_addr;
  490. int sockfd, i, slen=sizeof(serv_addr);
  491. char buf[BUFLEN];
  492. if(argc != 2)
  493. {
  494. printf("Usage : %s <Server-IP>\n",argv[0]);
  495. exit(0);
  496. }
  497. if ((sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP))==-1)
  498. err("socket");
  499. bzero(&serv_addr, sizeof(serv_addr));
  500. serv_addr.sin_family = AF_INET;
  501. serv_addr.sin_port = htons(PORT);
  502. if (inet_aton(argv[1], &serv_addr.sin_addr)==0)
  503. {
  504. fprintf(stderr, "inet_aton() failed\n");
  505. exit(1);
  506. }
  507. while(1)
  508. {
  509. printf("\nEnter data to send(Type exit and press enter to exit) : ");
  510. scanf("%[^\n]",buf);
  511. getchar();
  512. if(strcmp(buf,"exit") == 0)
  513. exit(0);
  514. if (sendto(sockfd, buf, BUFLEN, 0, (struct sockaddr*)&serv_addr,
  515. slen)==-1)
  516. err("sendto()");
  517. }
  518. close(sockfd);
  519. return 0;
  520. }
  521.  
  522. //client
  523. #include <arpa/inet.h>
  524. #include <netinet/in.h>
  525. #include <stdio.h>
  526. #include <sys/types.h>
  527. #include <sys/socket.h>
  528. #include <unistd.h>
  529. #include <stdlib.h>
  530. #include <string.h>
  531. #define BUFLEN 512
  532. #define PORT 9930
  533. void err(char *s)
  534. {
  535. perror(s);
  536. exit(1);
  537. }
  538. int main(int argc, char** argv)
  539. {
  540. struct sockaddr_in serv_addr;
  541. int sockfd, i, slen=sizeof(serv_addr);
  542. char buf[BUFLEN];
  543. if(argc != 2)
  544. {
  545. printf("Usage : %s <Server-IP>\n",argv[0]);
  546. exit(0);
  547. }
  548. if ((sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP))==-1)
  549. err("socket");
  550. bzero(&serv_addr, sizeof(serv_addr));
  551. serv_addr.sin_family = AF_INET;
  552. serv_addr.sin_port = htons(PORT);
  553. if (inet_aton(argv[1], &serv_addr.sin_addr)==0)
  554. {
  555. fprintf(stderr, "inet_aton() failed\n");
  556. exit(1);
  557. }
  558. while(1)
  559. {
  560. printf("\nEnter data to send(Type exit and press enter to exit) : ");
  561. scanf("%[^\n]",buf);
  562. getchar();
  563. if(strcmp(buf,"exit") == 0)
  564. exit(0);
  565. if (sendto(sockfd, buf, BUFLEN, 0, (struct sockaddr*)&serv_addr,
  566. slen)==-1)
  567. err("sendto()");
  568. }
  569. close(sockfd);
  570. return 0;
  571. }
  572.  
  573. TCP/IP FILE TRANSFER
  574.  
  575. //server
  576. #include<sys/types.h>
  577. #include<sys/socket.h>
  578. #include<netinet/in.h>
  579. #include<arpa/inet.h>
  580. #include<stdio.h>
  581. #include<stdlib.h>
  582. #include<unistd.h>
  583. #include<errno.h>
  584. #include<string.h>
  585. int main(int argc, char *argv[]){
  586. int sockfd,newsockfd,clilen;
  587. int port,n;
  588. char buffer[1024];
  589. struct sockaddr_in serv_addr,cli_addr;
  590. if(argc < 2){
  591.  printf("No port provided!");
  592.  exit(1);
  593. }
  594. sockfd = socket(AF_INET,SOCK_STREAM,0);
  595. if(sockfd < 0){
  596.  perror("Error during socet creation!");
  597.  exit(2);
  598. }
  599. bzero((char*) &serv_addr, sizeof(serv_addr));
  600. port = atoi(argv[1]);
  601. serv_addr.sin_family = AF_INET;
  602. serv_addr.sin_addr.s_addr = INADDR_ANY;
  603. serv_addr.sin_port = htons(port);
  604. if(bind(sockfd,(struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0){
  605.  perror("Error during binding!");
  606.  exit(3);
  607. }
  608. listen(sockfd,5);
  609. clilen = sizeof(cli_addr);
  610. newsockfd = accept(sockfd,(struct sockaddr *) &cli_addr, &clilen);
  611. if(newsockfd < 0){
  612.  perror("Error on accept!");
  613.  exit(4);
  614. }
  615. //Full setup done.... server listening
  616. FILE *fptr;
  617. bzero(buffer,1024);
  618. fptr = fopen("filemsg.txt","r");
  619. if(fptr == NULL){
  620.  printf("File open error!");
  621.  exit(5);
  622. }
  623. fscanf(fptr,"%[^\n]",&buffer);
  624.  printf("%s \n",buffer);
  625.  n = write(newsockfd,buffer,1023);
  626.  if(n < 0){
  627.  perror("Error in writing");
  628.  exit(6);
  629.  }
  630.  printf("String sent : %s \n",buffer);
  631. printf("File sent!! \n");
  632. fclose(fptr);
  633. close(newsockfd);
  634. //Process ends
  635. return 0;
  636. }
  637. // client
  638. #include<sys/types.h>
  639. #include<sys/socket.h>
  640. #include<netinet/in.h>
  641. #include<arpa/inet.h>
  642. #include<stdio.h>
  643. #include<stdlib.h>
  644. #include<unistd.h>
  645. #include<errno.h>
  646. #include<string.h>
  647. #include<netdb.h>
  648. int main(int argc, char *argv[]){
  649. int sockfd,port,n;
  650. struct sockaddr_in serv_addr;
  651. struct hostent *server;
  652. char buffer[1024];
  653. if(argc < 3){
  654.  printf("usage %s hostname port\n",argv[0]);
  655.  exit(1);
  656. }
  657. port = atoi(argv[2]);
  658. sockfd = socket(AF_INET, SOCK_STREAM, 0);
  659. if(sockfd < 0){
  660.  perror("Error during socket creation!");
  661.  exit(2);
  662. }
  663. server = gethostbyname(argv[1]);
  664. if(server == NULL){
  665.  printf("No such host! \n");
  666.  exit(3);
  667. }
  668. bzero((char*) &serv_addr,sizeof(serv_addr));
  669. serv_addr.sin_family = AF_INET;
  670. bcopy((char*) server->h_addr,(char*)&serv_addr.sin_addr.s_addr,server->h_length);
  671. serv_addr.sin_port = htons(port);
  672. if(connect(sockfd,&serv_addr,sizeof(serv_addr)) < 0){
  673.  perror("Error connecting!");
  674.  exit(4);
  675. }
  676.  
  677. FILE *fptr;
  678. fptr = fopen("file1.txt","a");
  679. if(fptr == NULL){
  680.  printf("File error");
  681.  exit(5);
  682. }
  683. bzero(buffer,1024);
  684.  n = read(sockfd,buffer,1023);
  685.  if(n < 0){
  686.  perror("Error reading");
  687.  exit(5);
  688.  }
  689.  fprintf(fptr,"%s",buffer);
  690. printf("File recieved!!\n");
  691. fclose(fptr);
  692. return 0;
  693. }
  694.  
  695. AUTHENTICATION 1
  696.  
  697. //server
  698. #include<sys/types.h>
  699. #include<sys/socket.h>
  700. #include<netinet/in.h>
  701. #include<arpa/inet.h>
  702. #include<stdio.h>
  703. #include<stdlib.h>
  704. #include<unistd.h>
  705. #include<errno.h>
  706. #include<string.h>
  707. int main(int argc, char *argv[]){
  708. int sockfd,newsockfd,clilen;
  709. int port,n;
  710. char actuser[256];
  711. char actpass[256];
  712. char user[256];
  713. char pass[256];
  714. struct sockaddr_in serv_addr,cli_addr;
  715. if(argc < 2){
  716.  printf("No port provided!");
  717.  exit(1);
  718. }
  719. sockfd = socket(AF_INET,SOCK_STREAM,0);
  720. if(sockfd < 0){
  721.  perror("Error during socket creation!");
  722.  exit(2);
  723. }
  724. bzero((char*) &serv_addr, sizeof(serv_addr));
  725. port = atoi(argv[1]);
  726. serv_addr.sin_family = AF_INET;
  727. serv_addr.sin_addr.s_addr = INADDR_ANY;
  728. serv_addr.sin_port = htons(port);
  729. if(bind(sockfd,(struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0){
  730.  perror("Error during binding!");
  731.  exit(3);
  732. }
  733. listen(sockfd,5);
  734. clilen = sizeof(cli_addr);
  735. newsockfd = accept(sockfd,(struct sockaddr *) &cli_addr, &clilen);
  736. if(newsockfd < 0){
  737.  perror("Error on accept!");
  738.  exit(4);
  739. }
  740. printf("Enter actual username : ");
  741. scanf("%s",&actuser);
  742. printf("Enter actual password : ");
  743. scanf("%s",&actpass);
  744. n = write(newsockfd,"Enter username : ",17);
  745. n = read(newsockfd,user,255);
  746. user[strlen(user)] = '\0';
  747. if(strcmp(user,actuser) == 10){
  748.  n = write(newsockfd,"Enter password : ",17);
  749.  n = read(newsockfd,pass,255);
  750.  pass[strlen(pass)] = '\0';
  751.  if(strcmp(pass,actpass) == 10){
  752.  n = write(newsockfd,"Accepted!",9);
  753.  printf("ACCEPT \n");
  754.  }
  755.  else{
  756.  n = write(newsockfd,"Rejected!",9);
  757.  printf("REJECT \n");
  758.  close(newsockfd);
  759.  }
  760. }
  761. else{
  762.  n = write(newsockfd,"Rejected!",9);
  763.  printf("REJECT\n");
  764.  close(newsockfd);
  765. }
  766. return 0;
  767. }
  768.  
  769. //client
  770. #include<stdio.h>
  771. #include<stdlib.h>
  772. #include<sys/types.h>
  773. #include<sys/socket.h>
  774. #include<netinet/in.h>
  775. #include<netdb.h>
  776. int main(int argc, char *argv[]){
  777. int sockfd,port,n;
  778. struct sockaddr_in serv_addr;
  779. struct hostent *server;
  780. char buffer[256];
  781. char user[256];
  782. char pass[256];
  783. if(argc < 3){
  784.  printf("usage %s hostname port\n",argv[0]);
  785.  exit(1);
  786. }
  787. port = atoi(argv[2]);
  788. sockfd = socket(AF_INET, SOCK_STREAM, 0);
  789. if(sockfd < 0){
  790.  perror("Error during socket creation!");
  791.  exit(2);
  792. }
  793. server = gethostbyname(argv[1]);
  794. if(server == NULL){
  795.  printf("No such host! \n");
  796.  exit(3);
  797. }
  798. bzero((char*) &serv_addr,sizeof(serv_addr));
  799. serv_addr.sin_family = AF_INET;
  800. bcopy((char*) server->h_addr,(char*)&serv_addr.sin_addr.s_addr,server->h_length);
  801. serv_addr.sin_port = htons(port);
  802. if(connect(sockfd,&serv_addr,sizeof(serv_addr)) < 0){
  803.  perror("Error connecting!");
  804.  exit(4);
  805. }
  806. bzero(buffer,256);
  807. n = read(sockfd,buffer,255);
  808. printf("%s",buffer);
  809. bzero(user,256);
  810. fgets(user,255,stdin);
  811. n = write(sockfd,user,strlen(user));
  812. bzero(buffer,256);
  813. n = read(sockfd,buffer,255);
  814. printf("%s",buffer);
  815. bzero(pass,256);
  816. fgets(pass,255,stdin);
  817. n = write(sockfd,pass,strlen(pass));
  818. bzero(buffer,256);
  819. n = read(sockfd,buffer,255);
  820. printf("%s\n",buffer);
  821. return 0;
  822. }
  823.  
  824. AUTHENTICATION 2
  825.  
  826. //client
  827. #include<stdio.h>
  828. #include<stdlib.h>
  829. #include<unistd.h>
  830. #include<errno.h>
  831. #include<string.h>
  832. #include<netdb.h>
  833. #include<sys/types.h>
  834. #include<netinet/in.h>
  835. #include<sys/socket.h>
  836. #include<arpa/inet.h>
  837. int main(int argc,char*argv[])
  838. {
  839. int sock_des,port,n;
  840. struct hostent*host;
  841. char buffer1[100],buffer2[100],buffer3[100],buffer4[100];
  842. struct sockaddr_in server_addr;
  843. if(argc!=3)
  844. {
  845. printf("unknown host\n");
  846. exit(1);
  847. }
  848. if((host=gethostbyname(argv[1]))==NULL)
  849. {
  850. printf("Unkown Host\n");
  851. exit(1);}
  852. port=atoi(argv[2]);
  853. if((sock_des=socket(AF_INET,SOCK_STREAM,0))==-1)
  854. {
  855. perror("socket");
  856. exit(1);}
  857. server_addr.sin_family=AF_INET;
  858. server_addr.sin_port=htons(port);
  859. server_addr.sin_addr=*((struct in_addr*)host->h_addr);
  860. if(connect(sock_des,(struct sockaddr*)&server_addr,sizeof(struct sockaddr))==-1)
  861. {
  862. perror("connect");
  863. exit(1);}
  864. bzero(buffer1,sizeof(buffer1));
  865. printf("enter username");
  866. scanf("%s",buffer1);
  867. write(sock_des,buffer1,sizeof(buffer1));
  868. bzero(buffer4,sizeof(buffer4));
  869. n=read(sock_des,buffer4,sizeof(buffer4));
  870. buffer4[n]='\0';
  871. printf("server sent:%s\n",buffer4);
  872. bzero(buffer2,sizeof(buffer2));
  873. printf("eneter passowrd\n");
  874. scanf("%s",buffer2);
  875. write(sock_des,buffer2,sizeof(buffer2));
  876. bzero(buffer3,sizeof(buffer3));
  877. buffer3[n]='\0';
  878. printf("serever sent %s\n",buffer3);
  879. close(sock_des);
  880. }
  881.  
  882. //server
  883. #include<stdio.h>
  884. #include<stdlib.h>
  885. #include<unistd.h>
  886. #include<errno.h>
  887. #include<string.h>
  888. #include<netdb.h>
  889. #include<sys/types.h>
  890. #include<netinet/in.h>
  891. #include<sys/socket.h>
  892. #include<arpa/inet.h>
  893. int main(int argc,char*argv[])
  894. {
  895. int sock_des,port,n1,n2,s1,s2;
  896. char buffer1[100],buffer2[100],buffer3[100],buffer4[100];
  897. int length,new_des;
  898. struct sockaddr_in server_addr,client_addr;
  899. bzero(buffer3,sizeof(buffer3));
  900. printf("\n Input password");
  901. scanf("%s",buffer4);
  902. if(argc!=2)
  903. {
  904. printf("usage:./server port \n");
  905. exit(1);
  906. }
  907. port=atoi(argv[1]);
  908. if((sock_des=socket(AF_INET,SOCK_STREAM,0))==-1)
  909. {
  910. perror("bind");
  911. exit(1);
  912. }
  913. server_addr.sin_family=AF_INET;
  914. server.addr.sin_port=htons(port);
  915. server_addr.sin_addr.s_addr=hotnl(INADDR_ANY);
  916. if(bind(sock_des,(conts struct sockaddr*)&server_addr,sizeof(struct sockaddr))=1)
  917. { perror("bind");
  918. exit(1);
  919. }
  920. if(listen(sock_des,5)==-1)
  921. {
  922. perror("listen");
  923. exit(1);
  924. }
  925. printf("server is listening at port%d\n",port);
  926. while(1);
  927. {
  928. if((new_des=accept(sock_des,(struct sock_addr*)&client_add,&length))=-1)
  929. {
  930. perroe("accept");
  931. exit(1);
  932. }
  933. bzero(buffer1,sizeof(buffer1));
  934. n1=read(new_des,buffer1,sizeof(buffer1));
  935. buffer1[n1]='\0';
  936. if((s1=strcmp(buffer1,buffer3))==0)
  937. {
  938. write(new_des," Username match \n enter password",30);
  939. printf("username match\n");
  940. bzero(buffer2,sizeof(buffer2));
  941. buffer2[n2]='\0';
  942. if((s2=strcmp(buffer2,buffer4))==0)
  943. {
  944. write(new_des,"password match",15);
  945. }
  946. else
  947. {
  948. write(new_des,"password not match",19);}
  949. }
  950. close(new_des);
  951. }
  952.  
  953. ECHO
  954.  
  955. SERVER:
  956. #include<sys/types.h>
  957. #include<sys/socket.h>
  958. #include<netinet/in.h>
  959. #include<unistd.h>
  960. #include<netdb.h>
  961. #include<stdio.h>
  962. #include<string.h>
  963. #include<arpa/inet.h>
  964. #define MAXLINE 1024
  965. int main(int argc,char **argv)
  966. {
  967. int sockfd;
  968. int n;
  969. socklen_t len;
  970. char msg[1024];
  971. struct sockaddr_in servaddr,cliaddr;
  972. sockfd=socket(AF_INET,SOCK_DGRAM,0);
  973. bzero(&servaddr,sizeof(servaddr));
  974. servaddr.sin_family=AF_INET;
  975. servaddr.sin_addr.s_addr=INADDR_ANY;
  976. servaddr.sin_port=htons(5035);
  977. printf("\n\n Binded");
  978. bind(sockfd,(struct sockaddr*)&servaddr,sizeof(servaddr));
  979. printf("\n\n Listening...");
  980. for(;;)
  981. {
  982. printf("\n ");
  983. len=sizeof(cliaddr);
  984. n=recvfrom(sockfd,msg,MAXLINE,0,(struct
  985. sockaddr*)&cliaddr,&len);
  986. printf("\n Client's Message : %s\n",msg);
  987. if(n<6)
  988. perror("send error");
  989. sendto(sockfd,msg,n,0,(struct sockaddr*)&cliaddr,len);
  990. }
  991. return 0;
  992. }
  993. //CLIENT:
  994. #include<sys/types.h>
  995. #include<sys/socket.h>
  996. #include<netinet/in.h>
  997. #include<string.h>
  998. #include<arpa/inet.h>
  999. #include<string.h>
  1000. #include<arpa/inet.h>
  1001. #include<stdio.h>
  1002. #define MAXLINE 1024
  1003. int main(int argc,char* argv[])
  1004. {
  1005. int sockfd;
  1006. int n;
  1007. socklen_t len;
  1008. char sendline[1024],recvline[1024];
  1009. struct sockaddr_in servaddr;
  1010. strcpy(sendline,"");
  1011. printf("\n Enter the message : ");
  1012. scanf("%s",sendline);
  1013. sockfd=socket(AF_INET,SOCK_DGRAM,0);
  1014. bzero(&servaddr,sizeof(servaddr));
  1015. servaddr.sin_family=AF_INET;
  1016. servaddr.sin_addr.s_addr=inet_addr("127.0.0.1");
  1017. servaddr.sin_port=htons(5035);
  1018. connect(sockfd,(struct sockaddr*)&servaddr,sizeof(servaddr));
  1019. len=sizeof(servaddr);
  1020. sendto(sockfd,sendline,MAXLINE,0,(struct sockaddr*)&servaddr,len);
  1021. n=recvfrom(sockfd,recvline,MAXLINE,0,NULL,NULL);
  1022. recvline[n]=0;
  1023. printf("\n Server's Echo : %s\n\n",recvline);
  1024. return 0;
  1025. }
Add Comment
Please, Sign In to add comment