dédoublement des fct pour tester en local

This commit is contained in:
basti 2020-12-07 15:22:19 +01:00
parent 3ebb86ea89
commit 465232c582
8 changed files with 51 additions and 21 deletions

View file

@ -9,14 +9,14 @@ public class Main {
public static void main(String[] args) { public static void main(String[] args) {
//on lance le server d'écoute de cmd //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 //on crée manuellement des utilisateurs
GestionnaireListeUtilisateur.instance().envoie("add$$$77$$$Moi$$$LocalHost"); GestionnaireListeUtilisateur.instance().envoie("add$$$77$$$Moi$$$LocalHost");
//on met à jour notre liste //on met à jour notre liste
GestionnaireListeUtilisateur.instance().majListe(); GestionnaireListeUtilisateur.instance().majListe2();
//on lance le UI //on lance le UI
Thread t = new Thread(new Login_RegisterUI()); Thread t = new Thread(new Login_RegisterUI());

View file

@ -5,5 +5,6 @@ public class ConstanteListeUtilisateur {
static public String IP_BROADCAST = "255.255.255.255"; static public String IP_BROADCAST = "255.255.255.255";
static public int SIZE_ORDRE = 100; static public int SIZE_ORDRE = 100;
static public int NUM_PORT_SERVER = 2000; static public int NUM_PORT_SERVER = 2000;
static public int NUM_PORT_SERVER2 = 2001;
} }

View file

@ -43,13 +43,14 @@ public class GestionnaireListeUtilisateur {
//Demande à tout le monde d'envoyer leur infos (TypeListeUtilisateur) --> Uniquement lors de la connexion //Demande à tout le monde d'envoyer leur infos (TypeListeUtilisateur) --> Uniquement lors de la connexion
public void majListe() { public void majListe() {
UdpBroadcastClient client = new UdpBroadcastClient(ConstanteListeUtilisateur.NUM_PORT_SERVER, envoie("listRequest"+ "$$$" + " " + "$$$" + " " + "$$$" + " ");
"listRequest"+ "$$$" + " " + "$$$" + " " + "$$$" + " ");
Thread t = new Thread(client);
t.start();
} }
public void majListe2() {
envoie2("listRequest"+ "$$$" + " " + "$$$" + " " + "$$$" + " ");
}
//ecoute le port de broadcast pour recevoir le message personnalisé //ecoute le port de broadcast pour recevoir le message personnalisé
public void ecoute() { //static ?? public void ecoute() { //static ??
@ -57,12 +58,24 @@ public class GestionnaireListeUtilisateur {
ecouteThread.start(); 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 //envoie en Broadcast aux autres liste les infos sur cet utilisateur
public void envoie(String message) { public void envoie(String message) {
Thread envoieThread = new Thread(new UdpBroadcastClient(ConstanteListeUtilisateur.NUM_PORT_SERVER, message)); Thread envoieThread = new Thread(new UdpBroadcastClient(ConstanteListeUtilisateur.NUM_PORT_SERVER, message));
envoieThread.start(); 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();
}
}
} }

View file

@ -77,6 +77,13 @@ public class TraitementCmdListe implements Runnable{
t.start(); 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();
}

View file

@ -7,22 +7,23 @@ import java.io.IOException;
import java.net.DatagramPacket; import java.net.DatagramPacket;
import java.net.UnknownHostException; import java.net.UnknownHostException;
public class UdpUnicastClient2 implements Runnable{ public class UdpUnicastClient implements Runnable{
private final int serverPort; private final int serverPort;
private final String serverIP; 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.serverPort = serverPort;
this.serverIP = serverIP; this.serverIP = serverIP;
this.message = msg;
} }
public void run() { public void run() {
try(DatagramSocket serverSocket = new DatagramSocket()){ try(DatagramSocket serverSocket = new DatagramSocket()){
//for (int i = 0; i<3; i++) { //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( DatagramPacket datagramPacket = new DatagramPacket(
message.getBytes(), message.getBytes(),
message.length(), message.length(),

View file

@ -23,15 +23,15 @@ public class GestionnaireNom{
//Renvoie le gestionnaire de liste, ou le créé s'il n'existe pas encore //Renvoie le gestionnaire de liste, ou le créé s'il n'existe pas encore
static public GestionnaireNom instance() { static public GestionnaireNom instance() {
try {
ipUtilisateur = InetAddress.getLocalHost().getHostName();
}
catch (Exception e) {}
//Si l'instance n'existe pas, on la créé //Si l'instance n'existe pas, on la créé
if (GestionnaireNom.uniqueInstance == null) { if (GestionnaireNom.uniqueInstance == null) {
GestionnaireNom.uniqueInstance = new GestionnaireNom(); GestionnaireNom.uniqueInstance = new GestionnaireNom();
try {
ipUtilisateur = InetAddress.getLocalHost().getHostName();
}
catch (Exception e) {}
} }
return GestionnaireNom.uniqueInstance; return GestionnaireNom.uniqueInstance;
@ -121,15 +121,23 @@ public class GestionnaireNom{
if (verifierDisponibiliteNom(nom)) { if (verifierDisponibiliteNom(nom)) {
setNom(nom); setNom(nom);
GestionnaireListeUtilisateur.instance().envoie("add"+ "$$$" + getId() + "$$$" + getNom() + "$$$" + "LocalHost");
UdpBroadcastClient client = new UdpBroadcastClient(ConstanteListeUtilisateur.NUM_PORT_SERVER, return true;
"add"+ "$$$" + getId() + "$$$" + getNom() + "$$$" + "LocalHost"); }
Thread t = new Thread(client); return false;
t.start(); }
public boolean nommer2(String nom) {
if (verifierDisponibiliteNom(nom)) {
setNom(nom);
GestionnaireListeUtilisateur.instance().envoie2("add"+ "$$$" + getId() + "$$$" + getNom() + "$$$" + "LocalHost");
return true; return true;
} }
return false; return false;
} }
} }

View file

@ -72,7 +72,7 @@ public class Login_RegisterUI extends JFrame implements Runnable{
String id = idField.getText(); String id = idField.getText();
String pwd = passwordField.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); GestionnaireNom.instance().setId(id);

View file

@ -84,7 +84,7 @@ public class NomUI extends JFrame implements Runnable{
else { else {
if (GestionnaireNom.instance().verifierDisponibiliteNom(nom) ) { if (GestionnaireNom.instance().verifierDisponibiliteNom(nom) ) {
if (!nom.isBlank()) { if (!nom.isBlank()) {
GestionnaireNom.instance().nommer(nom); GestionnaireNom.instance().nommer2(nom); //enlever le 2 à la fin //TODO
dispose(); dispose();
Thread t = new Thread(new ListUI()); Thread t = new Thread(new ListUI());