Advertisement
Guest User

CLIENT.c

a guest
Feb 8th, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.82 KB | None | 0 0
  1. //CLIENT
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <unistd.h>
  6. #include <sys/types.h>
  7. #include <sys/socket.h>
  8. #include <arpa/inet.h>
  9. #include <string.h>
  10.  
  11. int n,codice,y,sockfd;
  12. char recvline[1025];
  13.  
  14. typedef struct utente{
  15.     char ID[10];
  16.     int password;
  17.     int stato;
  18.     int vinte;
  19.     int perse;
  20.     }t_utente;
  21.  
  22. t_utente array[5];
  23. t_utente ricevi;
  24. int a,i = 0,j = 0,scelta;
  25. char* user;
  26. int pass = 0;
  27. char recvline[1025];
  28. char buff[4096];
  29. struct sockaddr_in servaddr;
  30. int controllo = -1;
  31. int log_in_user(char* user);
  32. int log_in_pass(int pass);
  33. void stampa();
  34.  
  35. int main(int argc, char **argv){
  36.  
  37.     if (argc != 2){
  38.         fprintf(stderr,"usage: %s <IPaddress>\n",argv[0]);
  39.             exit (1);
  40.     }
  41.         if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
  42.             fprintf(stderr,"socket error\n");
  43.             exit (1);
  44.         }
  45. //creo la socket
  46.     servaddr.sin_family = AF_INET;
  47.     servaddr.sin_port = htons(3100);
  48.     if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0){
  49.             fprintf(stderr,"inet_pton error for %s\n", argv[1]);
  50.             exit (1);
  51.     }
  52.     //do la definizione alla socket, la famiglia ip4, la porta associata e faccio la conversione
  53.     //della stringa che rappresenta l'indirizzo d rete
  54.     if (connect(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0){
  55.             fprintf(stderr,"connect error\n");
  56.             exit(1);
  57.     }
  58. //cerco di connettermi al server
  59.  
  60.     while (controllo != 1){
  61.         user = malloc(sizeof(char));
  62.         printf("LOG IN\n");
  63.         printf("\nNOME UTENTE:");
  64.         scanf("%s",user);
  65.         i = log_in_user(user);
  66.         printf("\n\nPASSWORD: ");
  67.         scanf("%d",&pass);
  68.         j = log_in_pass(pass);
  69.         stampa();
  70.         read(sockfd,&controllo,sizeof(controllo));
  71.     }
  72.     int scelta = 0;
  73.     while(scelta != 4){
  74.         printf("\n\n----MENU----\n");
  75.         printf("\n[0]-Visualizza partite");
  76.         printf("\n[1]-Sfida utente attivi");
  77.         printf("\n[2]-Utenti attivi");
  78.         printf("\n[3]-Utenti occupati");
  79.         printf("\n[4]-USCITA!");
  80.         printf("\n\nSCELTA: ");
  81.         scanf("%d",&scelta);
  82.         snprintf(buff,sizeof(buff), "%d\r\n",scelta);
  83.         if( write(sockfd,buff, strlen(buff)) != strlen(buff)){
  84.             perror("write");
  85.             exit(1);
  86.         }
  87.         switch(scelta){
  88.             case 0:break;
  89.             case 1:break;
  90.             case 2:stampa();
  91.                 break;
  92.         }
  93.     }
  94. }
  95.  
  96. int log_in_user(char* user){
  97.     int i=0;
  98.         snprintf(buff, 10, "%s\r\n",(char*) user);
  99.         if ( write(sockfd, buff, strlen(buff)) != strlen(buff)){
  100.             perror("write");
  101.             exit(1);
  102.         }
  103. }
  104.  
  105. int log_in_pass(int pass){
  106.     int j=0;
  107.     snprintf(buff,sizeof(buff), "%d\r\n",pass);
  108.     if ( write(sockfd, buff, strlen(buff)) != strlen(buff)){
  109.             perror("write");
  110.             exit(1);
  111.         }
  112. }
  113.  
  114. void stampa(){
  115.         read(sockfd, &ricevi, sizeof(ricevi));
  116.         printf("\nUtente: %s \n", ricevi.ID);
  117.     printf("---STATO---\n");
  118.     printf("(0)-OFFLINE\n(1)-ONLINE\n(2)-BUSY\n");
  119.     printf("----[%d]----", ricevi.stato);
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement