/** Boucle infini d'attente de connexion client */ private void attenteConnexionClient() { Socket socketClient; TraitementClient monTraitementClient; while (true) { try { socketClient = socketAttente.accept(); } catch (IOException e) { System.err.println("Erreur lors de l'attente de connexion de client " + e); try { fermerServeurSocket(); } catch (IOException e1) { System.err.println("Erreur d'entrée sortie sur la fermeture de la socket serveur" + e); } break; } monTraitementClient = new TraitementClient(socketClient); listeTraitementClient.add(monTraitementClient); try { monTraitementClient.creerFluxCommunicationTraitementClient(socketClient); } catch (IOException e1) { System.err.println("Erreur E/S sur l'ouverture des flux du TraitementClient " + e1); break; } try { monTraitementClient.ajouterClientCorrespondant(); } catch (IOException e) { System.err.println("Erreur E/S sur l'ajout du client aux connexions du serveur " + e); break; } monTraitementClient.lancerThread(); } }
/** * Averti tous les clients connectés que le nom du joueur pasé en paramètre à joué un nouveau coup * * @param nomClientCoupJoue Nom du client ayant joué un nouveau * @throws IOException Erreurs d'entrée/sortie */ public void avertirTousClientNouveauCoupJoue(String nomClientCoupJoue) throws IOException { for (TraitementClient tc : listeTraitementClient) { tc.avertirClientTraiteNouveauCoupJoue(nomClientCoupJoue); } }
/** * Averti tous les clients de démarrer le jeu en leur transmettant la difficulté et le nombre de * ronde * * @param informationsComplementaires Difficultée du match , nombre de ronde et solution * @throws IOException Erreurs d'entrée/sortie */ public void avertirTousClientOuvrirJeuMastermind(String informationsComplementaires) throws IOException { for (TraitementClient tc : listeTraitementClient) { tc.avertirClientTraiteOuvrirJeuMastermind(informationsComplementaires); } }
/** * Averti tous les clients connectés qu'il faut copier la liste des joueurs * * @throws IOException Erreurs d'entrée/sortie */ public void avertirTousClientCopierListeJoueurs() throws IOException { for (TraitementClient tc : listeTraitementClient) { tc.avertirClientTraiteCopierListeJoueurs(); } }
/** * Avertie le client qu'il traite que le bouton parametrer match doit être désactivé * * @throws IOException Erreurs d'entrée/sortie */ public void avertirTousClientDesactiverParametrer() throws IOException { for (TraitementClient tc : listeTraitementClient) { tc.avertirClientTraiteDesactiverParametrer(); } }