Advertisement
ostyleo

Untitled

Nov 1st, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.08 KB | None | 0 0
  1. SERVER
  2.  
  3. #include <sys/types.h>
  4. #include <sys/socket.h>
  5. #include <stdio.h>
  6. #include <netinet/in.h>
  7. #include <netinet/ip.h>
  8. #include <string.h>
  9. #include <stdlib.h>
  10. #include <unistd.h>
  11.  
  12. int main(int argc, char* argvs[]){
  13.  
  14.     if(argc != 2){
  15.     printf("Este necesar portul!\n" );
  16.         return 1;
  17.   }
  18.  
  19.     int s,c,l;
  20.     int i = 0;
  21.     char sir[50]="", fin[]="SUCCES",finm[]="succes",car;
  22.     int p[2]; pipe(p);
  23.     struct sockaddr_in server, client;
  24.     int port = atoi(argvs[1]);
  25.  
  26.     //VERIFICARE---------
  27.     if(port<1024 || port>65535){
  28.         printf("Portul nu convine!\n");
  29.         return 1;
  30.     }
  31.     //VERIFICARE---------
  32.  
  33.     s = socket(AF_INET, SOCK_STREAM, 0);
  34.     if(s<0){
  35.         printf("Eroare socket server!\n");
  36.         return 1;
  37.     }
  38.  
  39.     memset(&server, 0, sizeof(server));
  40.     server.sin_port = htons(port);
  41.     server.sin_family = AF_INET;
  42.     server.sin_addr.s_addr = INADDR_ANY;
  43.  
  44.     if(bind(s,(struct sockaddr *) &server ,sizeof(server))<0){
  45.         printf("Eroare la bind!\n");
  46.         return 1;
  47.     }
  48.  
  49.     listen(s,5);
  50.  
  51.     l = sizeof(client);
  52.     memset(&client,0,sizeof(client));
  53.     while(1){
  54.         c=accept(s,(struct sockaddr *) &client, &l);
  55.         printf("S-a conectat un client\n");
  56.         if(fork()==0){
  57.             //char car;
  58.             recv(c,&car,sizeof(car),MSG_WAITALL);
  59.             write(p[1],&car,sizeof(char));
  60.             close(p[0]);close(p[1]);
  61.             close(c);
  62.             return 0;
  63.         }
  64.         read(p[0],&car,sizeof(char));
  65.         sir[strlen(sir)] = car;
  66.         printf("%s\n",sir);
  67.         if(strcmp(sir,fin)==0 || strcmp(sir,finm)==0){
  68.             close(p[0]);close(p[1]);
  69.             break;
  70.         }
  71.     }
  72.     return 0;
  73. }
  74.  
  75.  
  76. CLIENT ----------------------------------------------------------
  77.  
  78. #include <sys/types.h>
  79. #include <sys/socket.h>
  80. #include <stdio.h>
  81. #include <netinet/in.h>
  82. #include <netinet/ip.h>
  83. #include <string.h>
  84. #include <unistd.h>
  85. #include <sys/socket.h>
  86. #include <netinet/in.h>
  87. #include <arpa/inet.h>
  88. #include <stdlib.h>
  89.  
  90. int main(int argc, char* argvs[]){
  91.   if(argc != 3){
  92.     printf("Este necesar ip-ul si portul!\n" );
  93.     return 0;
  94.   }
  95.  
  96.   int c;
  97.   struct sockaddr_in server;
  98.   char ip[20];
  99.   strcpy(ip,argvs[1]);
  100.   int port = atoi(argvs[2]);
  101.  
  102.  
  103.   //VERIFICARI-------------------
  104.  
  105.   if(port<1024 || port>65535){
  106.     printf("Portul nu convine!\n");
  107.     return 1;
  108.   }
  109.   char verif[]="0123456789.";
  110.   int i=0;
  111.   for(i=0;i<strlen(ip);i++){
  112.     if(strchr(verif,ip[i])==0){
  113.       printf("Ip-ul nu convine!\n");
  114.       return 1; //eroare
  115.     }
  116.   }
  117.   //VERIFICARI------------------
  118.  
  119.   c = socket(AF_INET, SOCK_STREAM, 0);
  120.   if(c<0){
  121.     printf("Eroare socket client!\n");
  122.     return 1;
  123.   }
  124.  
  125.   memset(&server, 0 ,sizeof(server));
  126.   server.sin_port = htons(port);
  127.   server.sin_family = AF_INET;
  128.   server.sin_addr.s_addr = inet_addr(ip);
  129.  
  130.   if (connect(c, (struct sockaddr *) &server, sizeof(server)) < 0) {
  131.     printf("Eroare conectarea la server!\n");
  132.     return 1;
  133.   }
  134.   char car;
  135.   printf("Introduceti caracterul: " );
  136.   scanf("%c",&car);
  137.  
  138.   if(car<65){
  139.     printf("Nu e litera!\n");
  140.     return 0;
  141.   }
  142.   else{
  143.     if(car>90){
  144.       if(car<97 || car>122){
  145.         printf("Nu e litera!\n");
  146.         return 0;
  147.       }
  148.     }
  149.   }
  150.   send(c,&car,sizeof(car),0);
  151.   close(c);
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement