Exemple #1
0
int main(int argc, char *argv[])
{
  short int nport=4000;          // nport num port utilisé pour la connexion
  int ecoute;                    // Descripteur de la socket d'ecoute
  char *ufname, uxml[SIZE];


  ufname = (char*)malloc(sizeof "users");
  strcpy(ufname,"users");

  /* Lecture des arguments de la commande */
#ifdef DEBUG
  printf("======= Lecture ======");
#endif

  // On verifie que le arguments sont bons
  if((analyseArg(argc,argv,&nport,ufname))==-1)
    {display_right_syntax(); return -1;}

  // Test sur l'ouverture du fichier des logins
  if((users = fopen(ufname,"r"))==NULL)
    {perror("Echec fopen:"); return -1;}


#ifdef DEBUG
  printf("======= Fin Lecture ======");
#endif

  /* Creation du process */
  printf("Entrez le nom du fichier à parser:");
  scanf("%s",uxml);
  if(addProcess(&t_process, uxml)!=0)
    {printf("Erreur de parsing fichier %s",uxml); return -1;}

  /* Initialisation du serveur */
  ecoute = initialisationServeur(&nport);

  /* Lancement de la boucle d'ecoute */
  //if(boucleServeur(ecoute,dummy,gestionClient)==-1) perror("Echec serveur");
  if(boucleServeur(ecoute,lanceClientLeger,gestionClient)==-1) 
    {perror("Echec serveur"); return -1;}

  fclose(users);
  free(ufname);

  return 0;
}
Exemple #2
0
// init_commutator_and_listen_to_connections: intialise la socket de connexion du serveur
// et effectue boucle de connexion pour les clients
void init_commutator_and_listen_to_connections(int argc, char**argv) {
	short int port;
	int contact_socket; // socket sur laquelle contacter le serveur

	// recupération du port entré par l'utilisateur
	if ( (port = get_port_from_options(argc, argv)) == NO_PORT ) {
		log(("Default port has being set"), stderr)
		port = SERVER_LOCAL_PORT;
	}

	// récuperation du descripteur de la socket serveur
	contact_socket = initialisationServeur(&port , MAX_CONNEXIONS);
	if ( contact_socket < 0 ) {
		err_log(("Main.initialisationServeur"), stderr)
		exit(EXIT_FAILURE);
	}

	// Affichage des données du serveur
	display_server_address(stdout, contact_socket);
	
	init_all_ports_of_commutator();

	// Creation de l'id de la file de requete
	serverResquestID = create_server_request_id();	
	

	// ------------------------------------------------------------------
	// TODO: run two thread for responding to clients and purge addresses
	// ------------------------------------------------------------------
	lanceThread(request_admin_handler, serverResquestID);

	// Lancement de la boucle d'écoute
	if (boucleServeur( contact_socket, process_slight_activity_for) < 0) {
		err_log("Main.boucleServeur", stderr)
		exit(EXIT_FAILURE);
	}
}