Пример #1
0
int main(int argc, char* argv[])
{
	struct Physique conn;
	// Descripteur physique associé à la connexion
	int connDescPhys;
	
	struct gEvenement even;
	
	// Ignore la fin des processus fils.
	// Evite les appels bloquants à wait().
	signal(SIGCHLD, SIG_IGN);
	
	FILE* f = OuvrirFichier(FICHIER_INFOS);
	CreerFichier(f); // Crée le fichier si non valide
	
	if ((connDescPhys = ConnecterServeur(argc, argv, &conn)) == -1) {
		printf("Impossible de démarrer une connexion serveur\n");
		exit(1);
	}
	
	if (CreerEvenement(connDescPhys, &even, 300) == -1) {
		printf("Impossible d'armer l'evenement\n");
		exit(1);
	}
	
	system("clear");
	printf("Serveur prêt\n");
	ListerFichier(f);
	
	for (;;) {
		char Buffer[100];
		int desc;
		
		switch (Attendre(&even, &desc)) {
		case 1:
			if (desc == 0) {
				fgets(Buffer, sizeof Buffer, stdin);
				system("clear");
				printf("Interruption clavier\n", Buffer);
				ListerFichierAsync(FICHIER_INFOS);
			} else
				GererClient(f, &conn);
			break;
		case 0: // Timeout
			break;
		case -1:
			printf("Erreur lors de l'attente de l'evenement\n");
			exit(1);
			break;
			
		};
	}
	
	fclose(f);
}
Пример #2
0
int main(void)
{
	int choix;
	FILE* f = OuvrirFichier(FICHIER_INFOS);
	
	int heureEntree, numTicket, heureDepart;
	
	do {
		printf("[1] Creer le fichier transactions\n");
		printf("[2] Reserver un ticket\n");
		printf("[3] Payer le ticker\n");
		printf("[4] Sortir du parking\n");
		printf("[5] Lister le contenu du fichier\n");
		printf("[6] Quitter\n");
		
		printf("Votre choix: ");
		scanf("%d", &choix);
		printf("\n");
		
		switch (choix) {
		case 1:
			CreerFichier(f);
			break;
		
		case 2:
			printf("Heure d'entrée : ");
			scanf("%d", &heureEntree);
			ReserverTicket(f, heureEntree, 0, 0, 0);
			break;
		
		case 3:
			printf("Numero de ticket : ");
			scanf("%d", &numTicket);
			printf("Heure de départ : ");
			scanf("%d", &heureDepart);
			PayerTicket(f, numTicket, heureDepart, 0, 0, 0);
			break;
		
		case 4:
			printf("Numero de ticket : ");
			scanf("%d", &numTicket);
			printf("Heure de départ : ");
			scanf("%d", &heureDepart);
			SortirParking(f, numTicket, heureDepart, 0, 0, 0);
			break;
		
		case 5:
			ListerFichier(f);
			break;
		}
	} while (choix != 6);
	
	return 0;
}
Пример #3
0
int main(int argc, char *argv[])
{
	struct Physique conn;
	// Descripteur physique associé à la connexion
	int connDescPhys;
	
	// Ouvre un fichier avec le # de port
	FILE* f = OuvrirFichier(argv[2]);
	CreerFichier(f); // Crée le fichier si non valide
	
	if ((connDescPhys = ConnecterClient(argc, argv, &conn)) == -1) {
		printf("Impossible de se connecter au serveur\n");
		exit(1);
	}
	
	Transmettre(
		&conn, connDescPhys, f, "Nouveau ticket",
		EnvoyerDemandeTicket, ReceptionTicket
	);
	
	fclose(f);
}
Пример #4
0
int main(int argc, char *argv[]){
    if (argc != 2){
        printf("Donner un fichier en argument\n");
        exit(1);
    } else {

        FILE* file = OuvrirFichier(argv[1]);
        *(argv[1]+strlen(argv[1])-4)='\0';
        FILE* fileCompressed = CreerFichier(strcat(argv[1],"decomp"));
        maillon *Tete, *Queue, *resultatTete=NULL;
        int choix;

        readFromFileBytesInOrder(&Tete,&Queue,file);
        fclose(file);

        if(Tete == NULL){
            printf("ATTENTION ! Le fichier est vide\n");
            exit(1);
        }

        printf("Veuillez faire un choix de compression : \n 1 - RLE \n 2 - MTF \n 3 - Huffman \n 4 - Combinaison des 3 modes de compression \n");
        if(scanf("%d", &choix)==0)
			return -1;
		
        switch(choix){
            case 1: 
                printf("\n**********************************************************");
                printf("\n*               DECODAGE RLE ...                         *");
                printf("\n**********************************************************\n");

				Tete = predecodeRle(Tete);
                decoderRle(Tete);
                writeListeBytes(Tete,fileCompressed);

                printf("\n**********************************************************");
                printf("\n*               DECODAGE RLE FIN                         *");
                printf("\n**********************************************************\n");
                break;
            case 2: 
                printf("\n**********************************************************");
                printf("\n*               DECODAGE MTF ...                         *");
                printf("\n**********************************************************\n");

                resultatTete = MTF2(Tete); 
                writeListeBytes(resultatTete,fileCompressed);
                liberer(resultatTete);

                printf("\n**********************************************************");
                printf("\n*               DECODAGE MTF FIN                         *");
                printf("\n**********************************************************\n");
                
                break;
            case 3:{  
                printf("\n**********************************************************");
                printf("\n*               DECODAGE HUFFMAN ...                     *");
                printf("\n**********************************************************\n");
                resultatTete = decodageHuffmanFinal(&Tete, &Queue); 
				
				#ifdef DEBUGG
                printf("\nVoici le message décodé en Hexa\n");
				print2(resultatTete);
				#endif
                
                //Ecriture du message dans le fichier
                writeListeBytes(resultatTete,fileCompressed);
                liberer(resultatTete);

                printf("\n**********************************************************");
                printf("\n*               DECODAGE HUFFMAN FIN                     *");
                printf("\n**********************************************************\n");
                break;
                   }
            case 4:{  
                printf("\n**********************************************************");
                printf("\n*               DECODAGE  COCKTAIL ...                   *");
                printf("\n**********************************************************\n");
				printf("Veuillez faire un choix des prétraitements à opérer :\n");
				printf("RLE?\n");
				int RLE,mtf;
				if(scanf("%d", &RLE)==0)
					return -1;
				printf("MTF?\n");
				if(scanf("%d", &mtf)==0)
					return -1;

                printf("\n**********************************************************");
                printf("\n*               DECODAGE HUFFMAN ...                     *");
                printf("\n**********************************************************\n");

                resultatTete = decodageHuffmanFinal(&Tete, &Queue); 
                liberer(Tete);
                Tete = resultatTete;

                printf("\n**********************************************************");
                printf("\n*               DECODAGE HUFFMAN FIN                     *");
                printf("\n**********************************************************\n");

                
                if (mtf){ 
                printf("\n**********************************************************");
                printf("\n*               DECODAGE MTF ...                         *");
                printf("\n**********************************************************\n");
                
                resultatTete = MTF2(Tete);
                liberer(Tete);
                Tete = resultatTete;
                
                printf("\n**********************************************************");
                printf("\n*               DECODAGE MTF FIN                         *");
                printf("\n**********************************************************\n");
                }

                if (RLE){ 
                printf("\n**********************************************************");
                printf("\n*               DECODAGE RLE ...                         *");
                printf("\n**********************************************************\n");
                
				Tete = predecodeRle(Tete);
                decoderRle(Tete); 

                printf("\n**********************************************************");
                printf("\n*               DECODAGE RLE FIN                         *");
                printf("\n**********************************************************\n");
                }

#ifdef DEBUGG
                printf("\nVoici le message décodé en Hexa\n");
                print2(Tete);
#endif
                
                //Ecriture du message dans le fichier
                writeListeBytes(Tete,fileCompressed);

                printf("\n**********************************************************");
                printf("\n*               DECODAGE COCKTAIL FIN                    *");
                printf("\n**********************************************************\n");
                break;
                   }
            default: printf("Erreur de choix");
        }
	
                //liberer(Tete);
                fclose(fileCompressed);
    }
    return 0;
}