示例#1
0
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*/
示例#2
0
文件: server.c 项目: AMANINOUN/nsy103
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);
      }
      
    }
  }
}