Exemple #1
0
int modifyMovie(sMovies movies[], int length)
{
    int modifyId = getElementID(movies, "Ingrese el id de la pelicula que desea modificar\n", length);
    int modifyIdDirector;
    int returnModify = -1;
    int option;

    if(movies[modifyId].isEmpty == 0 && movies != NULL && length>0)
    {
        printf("Elija la opcion que desea modificar\n");
        printf("1. Nombre de pelicula \n 2. Duracion \n 3. Puntaje \n 4. Genero \n 5. Descripcion \n 6. Link de la imagen \n");
        listMovies(movies, modifyId, length);
        fflush(stdin);
        scanf("%d", &option);
        switch(option)
        {
        case 1:
            getStringw(movies[modifyId].movieTitle, "Ingrese el nombre de la pelicula a modificar\n", "Error el dato ingresado no posee el formato permitido o la cantidad minima de caracteres\n",1,100);
            break;
        case 2:
            getIntw(movies[modifyId].mDuration, "Ingrese la duracion de la pelicula a modificar \n", "Error la duracion ingresada no es correcta o esta fuera de los parametros\n", 1, 1000);
            break;
        case 3:
            getIntw(movies[modifyId].mScore, "Ingrese el puntaje de la pelicula\n", "Dato invalido\n", 1, 100);
            break;
        case 4:
            getStringw(movies[modifyId].genre, "Ingrese el genero de la pelicula\n", "Dato invalido \n", 1, 25);
            break;
        case 5:
            getStringw(movies[modifyId].mDescription, "Ingrese un breve descripcion de la pelicula (Hasta 100 caracteres) \n", "Dato invalido \n", 1, 100);
            break;
        case 6:
            getStringw(movies[modifyId].imageLink, "Ingrese un link de una imagen \n", "Dato Invalido", 1, 100);
            break;
        default:
            printf("Ingrese una opcion valida");
        }
        returnModify = 0;
    }
    else
    {
        printf("El listado esta lleno o no hay ninguna pelicula cargada con ese id\n");
    }

    return returnModify;
}
Exemple #2
0
int main(int argc, char* argv[]) {
    
    int sfd;  
    struct addrinfo hints, *result, *rp;
    int rv;
    char s[INET6_ADDRSTRLEN];
    int isClientLocadora = 0;
    char response[MAXDATASIZE]; 
    int ativo;
    
    if (argc <= 2) {
        fprintf(stderr,"usage: client hostname usertype\n");
        exit(1);
    }

    if (argc == 3) {
      if ((strcmp(argv[2],"locadora") == 0)) {
        isClientLocadora = 1;
      }
    }
  
    memset(&hints, 0, sizeof(struct addrinfo));
    hints.ai_family = AF_UNSPEC;    
    hints.ai_socktype = SOCK_STREAM;

    if ((getaddrinfo(argv[1], PORT, &hints, &result)) != 0) {
        perror("Erro getaddrinfo\n");
        exit(0);
    }
  
    for (rp = result; rp != NULL; rp = rp->ai_next) {
        sfd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol);
        if (sfd == -1){
            perror("client: socket");
            continue;
        }

        if (connect(sfd, rp->ai_addr, rp->ai_addrlen) == -1) {
            close(sfd);
            perror("client: connect");
            continue;    
        }

        break;
    }

    if (rp == NULL) {
        printf("Could not bind\n");
        exit(0);
    }

    freeaddrinfo(result);

    printMenu(isClientLocadora);

    int connected = 1;
    char option[1]; 
    char buffer[20]; 
    char id[10];
    while (connected) {
        
        scanf("%s", &option);
        buffer[0] = (option[0]);
        buffer[1] = '\0';

        switch ( buffer[0] ) {

          
          case '0' :
            send(sfd, buffer, MAXDATASIZE, 0);
            connected = 0;
            break;

          
          case '1' :
            send(sfd, buffer, 12, 0);

            if (recv(sfd, response, MAXDATASIZE, 0) == -1) {
              perror("recv");
              exit(1);
            }
            listMovies(response);
            break;

          
          case '2' :
            strcat(buffer, "|");
            printf("Digite o genero: ");
            scanf("%s", id);
            strcat(buffer,id);

            send(sfd, buffer, 12, 0);

            if (recv(sfd, response, MAXDATASIZE, 0) == -1) {
              perror("recv");
              exit(1);
            }
            listMoviesGenre(response);
            break;

          
          case '3' :
            printf("Digite o id do filme: ");
            scanf("%s", id);
            strcat(buffer,id);

            send(sfd, buffer, 12, 0);

            if (recv(sfd, response, MAXDATASIZE, 0) == -1) {
               perror("recv");
               exit(1);
            }

            showMovieSynopsis(response);
            break;

          
          case '4' :
            printf("Digite o id do filme: ");
            scanf("%s", id);
            strcat(buffer,id);

            send(sfd, buffer, 12, 0);

            if (recv(sfd, response, MAXDATASIZE, 0) == -1) {
               perror("recv");
               exit(1);
            }

            showMovieSynopsis(response);
            break;

          
          case '5' :
            printf("Digite o id do filme: ");
            scanf("%s", id);
            strcat(buffer,id);

            send(sfd, buffer, 12, 0);

            if (recv(sfd, response, MAXDATASIZE, 0) == -1) {
               perror("recv");
               exit(1);
            }

            listAllMovies(response); 
            break;

          
          case '6' :
            send(sfd, buffer, 12, 0);
            if (recv(sfd, response, MAXDATASIZE, 0) == -1) {
              perror("recv");
              exit(1);
            }
            listAllMovies(response);
            break;

          
          case '7' :
            printf("Digite o id do filme: ");
            scanf("%s", id);

            strcat(buffer,"|");
            strcat(buffer,id);
            strcat(buffer,"|");

            printf("Digite a nova quantidade: ");
            scanf("%s", id);

            strcat(buffer,id);
            strcat(buffer,"|");

            char str[1];
            sprintf(str, "%d", isClientLocadora);
            strcat(buffer,str);

            send(sfd, buffer, 20, 0);
            break;

          case 'p' :
            printMenu(isClientLocadora);
            break;

          default:
            printf("Opção do cliente inválida\n");
            break;
          }
    }
    
    close(sfd);
    return 0;
}