From 465232c5828c63977825c8a6295aaeb20b5b43f4 Mon Sep 17 00:00:00 2001 From: basti Date: Mon, 7 Dec 2020 15:22:19 +0100 Subject: [PATCH] =?UTF-8?q?d=C3=A9doublement=20des=20fct=20pour=20tester?= =?UTF-8?q?=20en=20local?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Projet_POO/src/defaut/Main.java | 4 +-- .../src/liste/ConstanteListeUtilisateur.java | 1 + .../liste/GestionnaireListeUtilisateur.java | 21 ++++++++++++--- Projet_POO/src/liste/TraitementCmdListe.java | 7 +++++ ...castClient2.java => UdpUnicastClient.java} | 9 ++++--- Projet_POO/src/nom/GestionnaireNom.java | 26 ++++++++++++------- Projet_POO/src/ui/Login_RegisterUI.java | 2 +- Projet_POO/src/ui/NomUI.java | 2 +- 8 files changed, 51 insertions(+), 21 deletions(-) rename Projet_POO/src/liste/{UdpUnicastClient2.java => UdpUnicastClient.java} (76%) diff --git a/Projet_POO/src/defaut/Main.java b/Projet_POO/src/defaut/Main.java index 5ba80ab..270df5f 100644 --- a/Projet_POO/src/defaut/Main.java +++ b/Projet_POO/src/defaut/Main.java @@ -9,14 +9,14 @@ public class Main { public static void main(String[] args) { //on lance le server d'écoute de cmd - GestionnaireListeUtilisateur.instance().ecoute(); + GestionnaireListeUtilisateur.instance().ecoute2(PORT); //enlever le 2, debug //TODO PORT = 2000 à 2009 //on crée manuellement des utilisateurs GestionnaireListeUtilisateur.instance().envoie("add$$$77$$$Moi$$$LocalHost"); //on met à jour notre liste - GestionnaireListeUtilisateur.instance().majListe(); + GestionnaireListeUtilisateur.instance().majListe2(); //on lance le UI Thread t = new Thread(new Login_RegisterUI()); diff --git a/Projet_POO/src/liste/ConstanteListeUtilisateur.java b/Projet_POO/src/liste/ConstanteListeUtilisateur.java index 6b5d0f5..c26f054 100644 --- a/Projet_POO/src/liste/ConstanteListeUtilisateur.java +++ b/Projet_POO/src/liste/ConstanteListeUtilisateur.java @@ -5,5 +5,6 @@ public class ConstanteListeUtilisateur { static public String IP_BROADCAST = "255.255.255.255"; static public int SIZE_ORDRE = 100; static public int NUM_PORT_SERVER = 2000; + static public int NUM_PORT_SERVER2 = 2001; } diff --git a/Projet_POO/src/liste/GestionnaireListeUtilisateur.java b/Projet_POO/src/liste/GestionnaireListeUtilisateur.java index 7679bfa..1ddf4a7 100644 --- a/Projet_POO/src/liste/GestionnaireListeUtilisateur.java +++ b/Projet_POO/src/liste/GestionnaireListeUtilisateur.java @@ -43,13 +43,14 @@ public class GestionnaireListeUtilisateur { //Demande à tout le monde d'envoyer leur infos (TypeListeUtilisateur) --> Uniquement lors de la connexion public void majListe() { - UdpBroadcastClient client = new UdpBroadcastClient(ConstanteListeUtilisateur.NUM_PORT_SERVER, - "listRequest"+ "$$$" + " " + "$$$" + " " + "$$$" + " "); - Thread t = new Thread(client); - t.start(); + envoie("listRequest"+ "$$$" + " " + "$$$" + " " + "$$$" + " "); } + public void majListe2() { + envoie2("listRequest"+ "$$$" + " " + "$$$" + " " + "$$$" + " "); + + } //ecoute le port de broadcast pour recevoir le message personnalisé public void ecoute() { //static ?? @@ -57,12 +58,24 @@ public class GestionnaireListeUtilisateur { ecouteThread.start(); } + public void ecoute2(int port) { //static ?? + Thread ecouteThread = new Thread(new UdpBroadcastServer(port)); + ecouteThread.start(); + } + //envoie en Broadcast aux autres liste les infos sur cet utilisateur public void envoie(String message) { Thread envoieThread = new Thread(new UdpBroadcastClient(ConstanteListeUtilisateur.NUM_PORT_SERVER, message)); envoieThread.start(); } + public void envoie2(String message) { + for(int i=0; i<10; i++) { + Thread envoieThread = new Thread(new UdpUnicastClient(ConstanteListeUtilisateur.NUM_PORT_SERVER + i, "LocalHost", message)); + envoieThread.start(); + } + } + } diff --git a/Projet_POO/src/liste/TraitementCmdListe.java b/Projet_POO/src/liste/TraitementCmdListe.java index c4d1487..2bb1fbc 100644 --- a/Projet_POO/src/liste/TraitementCmdListe.java +++ b/Projet_POO/src/liste/TraitementCmdListe.java @@ -76,6 +76,13 @@ public class TraitementCmdListe implements Runnable{ Thread t = new Thread(client); t.start(); } + + public void envoyerNom2(int port) { //localHost TODO (gerer IP, unhandle exception ...) + UdpUnicastClient client = new UdpUnicastClient(port, "LocalHost", + "add"+ "$$$" + GestionnaireNom.instance().getId() + "$$$" + GestionnaireNom.instance().getNom() + "$$$" + "LocalHost"); + Thread t = new Thread(client); + t.start(); + } diff --git a/Projet_POO/src/liste/UdpUnicastClient2.java b/Projet_POO/src/liste/UdpUnicastClient.java similarity index 76% rename from Projet_POO/src/liste/UdpUnicastClient2.java rename to Projet_POO/src/liste/UdpUnicastClient.java index 3402630..7dab5ac 100644 --- a/Projet_POO/src/liste/UdpUnicastClient2.java +++ b/Projet_POO/src/liste/UdpUnicastClient.java @@ -7,22 +7,23 @@ import java.io.IOException; import java.net.DatagramPacket; import java.net.UnknownHostException; -public class UdpUnicastClient2 implements Runnable{ +public class UdpUnicastClient implements Runnable{ private final int serverPort; private final String serverIP; + private final String message; - public UdpUnicastClient2(int serverPort, String serverIP) { + public UdpUnicastClient(int serverPort, String serverIP, String msg) { this.serverPort = serverPort; this.serverIP = serverIP; - + this.message = msg; } public void run() { try(DatagramSocket serverSocket = new DatagramSocket()){ //for (int i = 0; i<3; i++) { - String message = "add$$$" + 77 + "$$$Roger$$$LocalHost"; //ordre$$$id$$$nom$$$ip + //String message = "add$$$" + 77 + "$$$Roger$$$LocalHost"; //ordre$$$id$$$nom$$$ip DatagramPacket datagramPacket = new DatagramPacket( message.getBytes(), message.length(), diff --git a/Projet_POO/src/nom/GestionnaireNom.java b/Projet_POO/src/nom/GestionnaireNom.java index 0434fef..f9fb8c8 100644 --- a/Projet_POO/src/nom/GestionnaireNom.java +++ b/Projet_POO/src/nom/GestionnaireNom.java @@ -23,15 +23,15 @@ public class GestionnaireNom{ //Renvoie le gestionnaire de liste, ou le créé s'il n'existe pas encore static public GestionnaireNom instance() { - try { - ipUtilisateur = InetAddress.getLocalHost().getHostName(); - } - catch (Exception e) {} - //Si l'instance n'existe pas, on la créé if (GestionnaireNom.uniqueInstance == null) { GestionnaireNom.uniqueInstance = new GestionnaireNom(); + + try { + ipUtilisateur = InetAddress.getLocalHost().getHostName(); + } + catch (Exception e) {} } return GestionnaireNom.uniqueInstance; @@ -121,15 +121,23 @@ public class GestionnaireNom{ if (verifierDisponibiliteNom(nom)) { setNom(nom); + GestionnaireListeUtilisateur.instance().envoie("add"+ "$$$" + getId() + "$$$" + getNom() + "$$$" + "LocalHost"); - UdpBroadcastClient client = new UdpBroadcastClient(ConstanteListeUtilisateur.NUM_PORT_SERVER, - "add"+ "$$$" + getId() + "$$$" + getNom() + "$$$" + "LocalHost"); - Thread t = new Thread(client); - t.start(); + return true; + } + return false; + } + +public boolean nommer2(String nom) { + + if (verifierDisponibiliteNom(nom)) { + setNom(nom); + GestionnaireListeUtilisateur.instance().envoie2("add"+ "$$$" + getId() + "$$$" + getNom() + "$$$" + "LocalHost"); return true; } return false; } + } diff --git a/Projet_POO/src/ui/Login_RegisterUI.java b/Projet_POO/src/ui/Login_RegisterUI.java index 6a7e0f4..ebc43e2 100644 --- a/Projet_POO/src/ui/Login_RegisterUI.java +++ b/Projet_POO/src/ui/Login_RegisterUI.java @@ -72,7 +72,7 @@ public class Login_RegisterUI extends JFrame implements Runnable{ String id = idField.getText(); String pwd = passwordField.getText(); - if( pwd.equals("admin") || id.equals("0") ) { //remplaver || par && -> flemme debug + if( pwd.equals("admin") || id.equals("0") ) { //remplaver || par && -> facilite debug GestionnaireNom.instance().setId(id); diff --git a/Projet_POO/src/ui/NomUI.java b/Projet_POO/src/ui/NomUI.java index 799b9e7..e524a6b 100644 --- a/Projet_POO/src/ui/NomUI.java +++ b/Projet_POO/src/ui/NomUI.java @@ -84,7 +84,7 @@ public class NomUI extends JFrame implements Runnable{ else { if (GestionnaireNom.instance().verifierDisponibiliteNom(nom) ) { if (!nom.isBlank()) { - GestionnaireNom.instance().nommer(nom); + GestionnaireNom.instance().nommer2(nom); //enlever le 2 à la fin //TODO dispose(); Thread t = new Thread(new ListUI());