/* gestion d'index telephonique (pour etre Client RPC) L. Perroton - ESIEE - 1998 */ #include #include "index.h" menu(){ printf ( "\n Menu:\n"); printf ( "1) Rechercher un nom\n"); printf ( "2) Ajouter un nom\n"); printf ( "3) Faire afficher au srv\n"); printf ( "4) lister les noms\n"); printf ( "5) Terminer le serveur\n"); printf ( "6) Recherche avec callback\n"); printf ( "7) Connecter a un autre srv \n"); printf ( "8) Quiter\n\n"); printf ( "Faites votre choix + Enter: "); } main (int argc, char ** argv) { char *chaine = (char *)malloc(256), telephone[256]; ligne *resultat, nouvelle; printf("test\n"); CLIENT* clnt = clnt_create(argv[1], INDEX_PROG, INDEX_PROG_V1, "udp"); printf("test\n"); menu(); while ( gets(chaine) ) { switch ( chaine[0] ) { case '1': /* recherche une entree dans l'index */ printf ( "Recherche nom : "); gets(chaine); resultat = recherche_1_1 ( &chaine, clnt ); printf ( "Nom : %s \t tel : %d\n", resultat -> nom, resultat -> tel ); break; case '2': /* ajoute une entree */ printf ( "Ajout Nom : "); gets(chaine); nouvelle.nom = chaine; printf ("Tel : "); scanf ("%d", &nouvelle.tel ); getchar(); printf ("Ajout: %d \n", (ajout_1_1( &nouvelle, clnt )) ); break; case '3': /* affiche... */ printf ( "Afficher : "); gets(chaine); printf ("%s\n", chaine); break; case '4': /*listage*/ printf("Listage des noms :\n"); void *truc; liste_ligne *lst_lig = listing_1_1(truc, clnt); liste_ligne *lst_tmp = lst_lig; printf("listing_1_1 = %p, lst_lig = %p",listing_1_1(truc, clnt), lst_lig); while(lst_tmp!=NULL){ printf("Nom : %s, tel : %d\n",lst_tmp->lig.nom, lst_tmp->lig.tel); lst_tmp=lst_tmp->ptr_lig; } //clnt_freeres(clnt, (xdrproc_t) xdr_liste_ligne, (void*)lst_lig); break; case '8': /* quitter le client */ exit(0); break; default: printf ("Option non (encore) implémenté..."); } menu(); } }