Advertisement
ostyleo

Untitled

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