Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package gestetu05; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.ServerSocket; import java.net.Socket; import java.io.PrintWriter; import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import javafx.scene.Node; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import jdk.internal.org.xml.sax.SAXException; import static jdk.nashorn.tools.ShellFunctions.input; import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.JDOMException; import static org.jdom2.filter.Filters.document; import org.jdom2.input.SAXBuilder; /** * * @author ALEX-MOMO */ public class Client { public Client() { System.out.println("Cration d'une instance Client !"); } static void LireXML(String NomFichier) { Element racine = new Element("repertoire"); Document document = new Document(racine); //On cre une instance de SAXBuilder SAXBuilder sxb = new SAXBuilder(); try { //On cre un nouveau document JDOM avec en argument le fichier XML //Le parsing est termin ;) document = sxb.build(new File(NomFichier)); } catch (JDOMException | IOException e) { } //On initialise un nouvel lment racine avec l'lment racine du document. racine = document.getRootElement(); //On cre une List contenant tous les noeuds "utilisateur" de l'Element racine List listUtilisateurs = racine.getChildren("utilisateur"); //On cre un Iterator sur notre liste Iterator i = listUtilisateurs.iterator(); System.out.println("--------------------Fil d'actualit--------------------"); while (i.hasNext()) { //On recre l'Element courant chaque tour de boucle afin de //pouvoir utiliser les mthodes propres aux Element comme : //slectionner un nud fils, modifier du texte, etc... Element courant = (Element) i.next(); //On affiche le nom de llment courant System.out.println("L'utilisateur " + courant.getChild("nom").getText()); System.out.println(" est " + courant.getChild("Profession").getText()); } } static void ChercherInformation(String NomFichier, String recherche) { Element racine = new Element("repertoire"); Document document = new Document(racine); //On cre une instance de SAXBuilder SAXBuilder sxb = new SAXBuilder(); try { //On cre un nouveau document JDOM avec en argument le fichier XML //Le parsing est termin ;) document = sxb.build(new File(NomFichier)); } catch (JDOMException | IOException e) { } //On initialise un nouvel lment racine avec l'lment racine du document. racine = document.getRootElement(); //On cre une List contenant tous les noeuds "utilisateur" de l'Element racine List listUtilisateurs = racine.getChildren("utilisateur"); //On cre un Iterator sur notre liste Iterator i = listUtilisateurs.iterator(); System.out.println("Rsultat de la recherche:\n"); while (i.hasNext()) { //On recre l'Element courant chaque tour de boucle afin de //pouvoir utiliser les mthodes propres aux Element comme : //slectionner un nud fils, modifier du texte, etc... Element courant = (Element) i.next(); //On affiche le nom de llment courant if (courant.getChild("nom").getText().equals(recherche) || courant.getChild("Profession").getText().equals(recherche)) { System.out.println("Nom:" + courant.getChild("nom").getText()); System.out.println("Profession:" + courant.getChild("Profession").getText() + "\n"); } } } public static Document readFromString(String xmlString) throws JDOMException, IOException { SAXBuilder builder = new SAXBuilder(); return builder.build(new ByteArrayInputStream(xmlString.getBytes("UTF-8"))); } public static String Menu() throws IOException { String userInput; BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in)); do { System.out.println("############ Veuillez faire votre choix : ######################"); System.out.println("################################################################ \n"); System.out.println("############ --> Connexion : tapez 1 ###########################"); System.out.println("############ --> Inscription : tapez 2 ##########################"); System.out.println("############ --> Modification : tapez 3 ##########################"); System.out.println("############ --> Rechercher : tapez 4 ##########################"); System.out.println("############ --> Quitter : tapez 5 ##########################"); System.out.println("############ --> Chat : tapez 6 ##########################"); if ((userInput = stdIn.readLine()) != null && !userInput.equalsIgnoreCase("exit")) { System.out.println("Votre choix : " + userInput); } } while (!"1".equals(userInput) && !"2".equals(userInput) && !"3".equals(userInput) && !"4".equals(userInput) && !"5".equals(userInput) && !"6".equals(userInput)); return userInput; } public static void main(String[] args) throws IOException, JDOMException { String choix1 = "1"; GestionProto GP = new GestionProto(); String userInput; String srvRep; String xmlOut; GestionnaireUtilisateur monGU = null; BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in)); /////////////////////// Cration du socket client<->serveur ///////////////////////////// Socket sockClient = new Socket("127.0.0.1", 57000); PrintWriter outToServer = new PrintWriter(sockClient.getOutputStream(), true); BufferedReader inFromServer = new BufferedReader(new InputStreamReader(sockClient.getInputStream())); ///////////////////////////////////////////////////////////////////////////////////////// System.out.println("################################################################"); System.out.println("################################################################"); System.out.println("############ BIENVENUE DANS NOTRE PROJET JAVA ##################"); System.out.println("################################################################"); userInput = Menu(); do { System.out.println("TEST:" + userInput); if ("1".equals(userInput)) { String utilisateur; String mdp; System.out.println("Connexion: \n"); System.out.println("Entrer vos informations: \n"); do { do { System.out.println("Nom d'utilisateur: \n"); utilisateur = stdIn.readLine(); if ("".equals(utilisateur)) { System.out.println("Mauvaise entre, recommencez!"); } } while ("".equals(utilisateur)); do { System.out.println("Mot de passe: \n"); mdp = stdIn.readLine(); if ("".equals(mdp)) { System.out.println("Mauvaise entre, recommencez!"); } } while ("".equals(mdp)); xmlOut = GP.GenererMess("requte", "Connexion", utilisateur, mdp, "Profession", "??"); outToServer.println(xmlOut + Character.toString((char) 4)); srvRep = inFromServer.readLine(); System.out.println("srvRep: " + srvRep); if (!srvRep.equals("a")) { System.out.println("Vous tes bien connect!"); LireXML("Exercice.xml"); /* Cration du socket ecoute de la messagerie instantanne */ ThreadEcouteurMI leThreadEcouteurMI = new ThreadEcouteurMI("127.0.0.1", 58000); leThreadEcouteurMI.start(); userInput = Menu(); } else { System.out.println("Nom d'utilisateur ou mot depasse erron, recommencez!"); } } while ("a".equals(srvRep)); } else if ("2".equals(userInput)) { String utilisateur; String mdp; String prof; System.out.println("Inscription: \n"); System.out.println("Entrer vos informations: \n"); do { do { System.out.println("Nom d'utilisateur: \n"); utilisateur = stdIn.readLine(); if ("".equals(utilisateur)) { System.out.println("Mauvaise entre, recommencez!"); } } while ("".equals(utilisateur)); do { System.out.println("Mot de passe: \n"); mdp = stdIn.readLine(); if ("".equals(mdp)) { System.out.println("Mauvaise entre, recommencez!"); } } while ("".equals(mdp)); do { System.out.println("Profession: \n"); prof = stdIn.readLine(); if ("".equals(prof)) { System.out.println("Mauvaise entre, recommencez!"); } } while ("".equals(prof)); xmlOut = GP.GenererMess("requte", "ajoutUtilisateur", utilisateur, mdp, prof, "??"); outToServer.println(xmlOut + Character.toString((char) 4)); srvRep = inFromServer.readLine(); System.out.println("srvRep: " + srvRep); if (!srvRep.equals("a")) { System.out.println("Vous tes bien inscrit!"); userInput = Menu(); } else { System.out.println("Utilisateur dja prsent, Recommencez!"); } } while ("a".equals(srvRep)); while ((srvRep = inFromServer.readLine()).contains("</dasProtokol>") != true) System.out.println("echo: " + srvRep); } else if ("3".equals(userInput)) { String utilisateur; String mdp; System.out.println("Modification: \n"); System.out.println("Entrer vos informations: \n"); do { do { System.out.println("Nom d'utilisateur: \n"); utilisateur = stdIn.readLine(); if ("".equals(utilisateur)) { System.out.println("Mauvaise entre, recommencez!"); } } while ("".equals(utilisateur)); do { System.out.println("Mot de passe: \n"); mdp = stdIn.readLine(); if ("".equals(mdp)) { System.out.println("Mauvaise entre, recommencez!"); } } while ("".equals(mdp)); xmlOut = GP.GenererMess("requte", "Modification", utilisateur, mdp, "Profession", "??"); outToServer.println(xmlOut + Character.toString((char) 4)); srvRep = inFromServer.readLine(); System.out.println("srvRep: " + srvRep); if (!srvRep.equals("a")) { System.out.println("Vous avez t trouv!"); String uti; String modepa; String profe; System.out.println("Modification: \n"); System.out.println("Entrer vos nouvelles informations: \n"); do { System.out.println("Nom d'utilisateur: \n"); uti = stdIn.readLine(); if ("".equals(uti)) { System.out.println("Mauvaise entre, recommencez!"); } } while ("".equals(uti)); do { System.out.println("Mot de passe: \n"); modepa = stdIn.readLine(); if ("".equals(modepa)) { System.out.println("Mauvaise entre, recommencez!"); } } while ("".equals(modepa)); do { System.out.println("Profession: \n"); profe = stdIn.readLine(); if ("".equals(profe)) { System.out.println("Mauvaise entre, recommencez!"); } } while ("".equals(profe)); xmlOut = GP.GenererMess("requte", "ajoutUtilisateur", uti, modepa, profe, "??"); userInput = Menu(); outToServer.println(xmlOut + Character.toString((char) 4)); while ((srvRep = inFromServer.readLine()).contains("</dasProtokol>") != true) System.out.println("echo: " + srvRep); } else { System.out.println("Nom d'utilisateur ou mot depasse erron, recommencez!"); } } while ("a".equals(srvRep)); } else if ("4".equals(userInput)) { System.out.println("Rechercher:"); String recherche; recherche = stdIn.readLine(); ChercherInformation("Exercice.xml", recherche); userInput = Menu(); } else if ("6".equals(userInput)) { InetAddress adresseLocale = InetAddress.getByName("127.0.0.1"); try (Socket sockChat = new Socket("127.0.0.1", 58000, adresseLocale, 58001)) { PrintWriter outToChat = new PrintWriter(sockChat.getOutputStream(), true); BufferedReader inFromChat = new BufferedReader( new InputStreamReader(sockChat.getInputStream())); String userInput2; String reponseChat; while ((userInput2 = stdIn.readLine()) != null && !userInput2.equalsIgnoreCase("exit")) { outToChat.println( xmlOut = GP.GenererMess("chat", userInput2, "hello comment va ?!", "?", "?", "??") + Character.toString((char) 4)); //synchronized(System.out) { System.out.println("rponse chat::"); reponseChat = inFromChat.readLine(); System.out.println(reponseChat); System.out.println("::end rp chat"); //} } } catch (Exception e) { e.printStackTrace(); } userInput = Menu(); } } while (!userInput.equals("5")); sockClient.close(); } }