Advertisement
ostyleo

Untitled

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