int main (int argc, char **argv) { int sockrec; /* Socket d'emission reception */ fd_set readf; /* L'ensemble de descripteur en lecture a utilise avec select */ int num; if (argc != 3) { printf("Utilisation : \n"); printf("server: Please enter 3 then ClientCode\n"); exit(1); } num = atoi (argv[2]); /* L'identifiant client : donné par l'utilisateur */ printf("server: you logged on as Client%d\n",num); #ifdef DEBUG printf ("\n : Info : Client numero => %d \n", num); #endif /*Creation de la socket du client 2000+numero client */ sockrec = SockUdp (NULL, 2000 + num); /* autre adresse du serveur de chating */ autre = (struct sockaddr_in *) CreerSockAddr (argv[1], 2001); /* utilisation du select pour attendre une lecture de plusieurs entrés */ for (;;) { FD_SET (sockrec, &readf); FD_SET (0, &readf); switch (select (sockrec + 1, &readf, 0, 0, 0)) { default: if (FD_ISSET (0, &readf)){ TraitementClavier (sockrec); } else if (FD_ISSET (sockrec, &readf)) { TraitementSock (sockrec); } } /*switch*/ }/*for*/ }/*main*/
int main(int argc, char** argv) { int sockrec; /* Socket de reception / Emission */ fd_set readf; /* L'esemble de descripteur d'entree */ int i; /* Initialisation des client (au depart aucun) * Il faut amélioré (par liste chaînée ou autre (ne pas mettre 100 ici) */ for (i=0; i< 100; i++) autre[i] = NULL; /* Le service du serveur est le 2001 */ sockrec = SockUdp(NULL, 2001); /* * autre = (struct sockaddr_in *) CreerSockAddr("ghadir", 2001); */ for(;;) { FD_SET(sockrec, &readf); FD_SET(0, &readf); switch (select (sockrec+1, &readf, 0,0,0)) { default : if (FD_ISSET(0, &readf)) { /* STDIN*/ TraitementClavier(sockrec); } else if (FD_ISSET(sockrec, &readf)) {/*SOCKET*/ TraitementSock(sockrec); } } } }