From 6832c6be03783a8d03641e5e5baf69804ac8da4d Mon Sep 17 00:00:00 2001 From: benassai Date: Mon, 7 Dec 2020 16:51:31 +0100 Subject: [PATCH] =?UTF-8?q?Interface=20graphique=20+=20gestion=20des=20nom?= =?UTF-8?q?s,=20de=20la=20liste=20de=20nom,=20et=20des=20sessions,=20fonct?= =?UTF-8?q?ionnent=20(dans=20certains=20cas=20pr=C3=A9cis,=20de=20mani?= =?UTF-8?q?=C3=A8re=20limit=C3=A9e=20dans=20le=20temps).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...nClavardage.java => SessionClavardage.java} | 6 +++--- .../src/clavardage/gestionnaireClavardage.java | 18 ++++++++++-------- Projet_POO/src/clavardage/test.java | 7 +++++++ Projet_POO/src/defaut/Main.java | 16 ++++++++++++++-- Projet_POO/src/liste/TraitementCmdListe.java | 2 +- Projet_POO/src/reseau/TCPClient.java | 1 + Projet_POO/src/reseau/TCPServer.java | 1 + Projet_POO/src/ui/DiscussionUI.java | 8 +++++--- Projet_POO/src/ui/ListUI.java | 12 ++++-------- Projet_POO/src/ui/Login_RegisterUI.java | 2 ++ 10 files changed, 48 insertions(+), 25 deletions(-) rename Projet_POO/src/clavardage/{sessionClavardage.java => SessionClavardage.java} (89%) diff --git a/Projet_POO/src/clavardage/sessionClavardage.java b/Projet_POO/src/clavardage/SessionClavardage.java similarity index 89% rename from Projet_POO/src/clavardage/sessionClavardage.java rename to Projet_POO/src/clavardage/SessionClavardage.java index 9f8970c..fd07769 100644 --- a/Projet_POO/src/clavardage/sessionClavardage.java +++ b/Projet_POO/src/clavardage/SessionClavardage.java @@ -1,20 +1,20 @@ package clavardage; import reseau.*; -public class sessionClavardage { +public class SessionClavardage { private String idSource = null; private String idDestination = null; private TCPClient clientEmission = null; private TCPClient clientReception = null; - public sessionClavardage(String idSource, String idDestination, TCPClient clientEmission, TCPClient clientReception) { + public SessionClavardage(String idSource, String idDestination, TCPClient clientEmission, TCPClient clientReception) { this.idSource = idSource; this.idDestination = idDestination; this.clientEmission = clientEmission; this.clientReception = clientReception; } - public sessionClavardage(String idSource, String idDestination, TCPClient clientReception) { + public SessionClavardage(String idSource, String idDestination, TCPClient clientReception) { this.idSource = idSource; this.idDestination = idDestination; this.clientReception = clientReception; diff --git a/Projet_POO/src/clavardage/gestionnaireClavardage.java b/Projet_POO/src/clavardage/gestionnaireClavardage.java index effe131..e1527e6 100644 --- a/Projet_POO/src/clavardage/gestionnaireClavardage.java +++ b/Projet_POO/src/clavardage/gestionnaireClavardage.java @@ -15,7 +15,7 @@ public class gestionnaireClavardage implements Runnable{ public static final int PORT_REQUETE_NOUVELLE_SESSION = 19999; public static final int BACKLOG = 10; private static gestionnaireClavardage uniqueInstance = null; - private ArrayList sessions = new ArrayList(); + private ArrayList sessions = new ArrayList(); private TCPServer requestServer; private Thread thread; @@ -30,7 +30,7 @@ public class gestionnaireClavardage implements Runnable{ //Remplacer par un singleton private gestionnaireClavardage(int backlog) { GestionnaireNom gn = GestionnaireNom.instance(); - this.requestServer = new TCPServer(gn.getIp(), backlog, PORT_REQUETE_NOUVELLE_SESSION + Integer.parseInt(gn.getId())); + this.requestServer = new TCPServer("localhost", backlog, PORT_REQUETE_NOUVELLE_SESSION + Integer.parseInt(gn.getId())); this.thread = new Thread(this); this.thread.start(); } @@ -38,7 +38,7 @@ public class gestionnaireClavardage implements Runnable{ public void createSession(String name) { GestionnaireNom gn = GestionnaireNom.instance(); TCPClient client = new TCPClient(gn.ipFromNom(name), PORT_REQUETE_NOUVELLE_SESSION + Integer.parseInt(gn.idFromNom(name))) ; - sessionClavardage session = new sessionClavardage(gn.getId(), gn.idFromNom(name), client, null); + SessionClavardage session = new SessionClavardage(gn.getId(), gn.idFromNom(name), client, null); this.sessions.add(session); client.send(gn.getId()+"\n"); System.out.print("Paramètres de session envoyée à " + gn.idFromNom(name) + "\n"); @@ -56,18 +56,18 @@ public class gestionnaireClavardage implements Runnable{ }); } - public ArrayList getSessions() { + public ArrayList getSessions() { return this.sessions; } public void fermerSessions() { - for (sessionClavardage s : this.sessions) { + for (SessionClavardage s : this.sessions) { s.stop(); } } public void printSessions() { - for (sessionClavardage s : sessions) { + for (SessionClavardage s : sessions) { System.out.print(s); } } @@ -76,8 +76,10 @@ public class gestionnaireClavardage implements Runnable{ GestionnaireNom gn = GestionnaireNom.instance(); while (true) { + Socket ssocket = this.requestServer.accept(); System.out.print("Données reçues sur le serveur de " + gn.getId() + "\n"); + for (SessionClavardage s : this.sessions) System.out.print(s); TCPServerThread client = new TCPServerThread(ssocket,false); String idClient = null; @@ -91,7 +93,7 @@ public class gestionnaireClavardage implements Runnable{ Thread t = new Thread(client); t.start(); int i = 0; - while (idClient != null && i list = new ArrayList(); + list.add(new TypeListeUtilisateur("10", "User1", "localhost")); + list.add(new TypeListeUtilisateur("11", "User2", "localhost")); + glu.setListeUtilisateur(list); GestionnaireNom gn = GestionnaireNom.instance(); gn.setId("11"); gn.setIp("localhost"); diff --git a/Projet_POO/src/defaut/Main.java b/Projet_POO/src/defaut/Main.java index 270df5f..61587b4 100644 --- a/Projet_POO/src/defaut/Main.java +++ b/Projet_POO/src/defaut/Main.java @@ -1,5 +1,6 @@ package defaut; +import clavardage.gestionnaireClavardage; import liste.GestionnaireListeUtilisateur; import ui.Login_RegisterUI; @@ -8,16 +9,27 @@ import ui.Login_RegisterUI; public class Main { public static void main(String[] args) { + + //on lance le server d'écoute de cmd - GestionnaireListeUtilisateur.instance().ecoute2(PORT); //enlever le 2, debug //TODO PORT = 2000 à 2009 + GestionnaireListeUtilisateur.instance().ecoute2(2002); //enlever le 2, debug //TODO PORT = 2000 à 2009 //on crée manuellement des utilisateurs - GestionnaireListeUtilisateur.instance().envoie("add$$$77$$$Moi$$$LocalHost"); + //GestionnaireListeUtilisateur.instance().envoie2("add$$$77$$$Moi$$$LocalHost"); //on met à jour notre liste GestionnaireListeUtilisateur.instance().majListe2(); + + + try { + Thread.sleep(0); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + //on lance le UI Thread t = new Thread(new Login_RegisterUI()); t.start(); diff --git a/Projet_POO/src/liste/TraitementCmdListe.java b/Projet_POO/src/liste/TraitementCmdListe.java index 2bb1fbc..bfead7b 100644 --- a/Projet_POO/src/liste/TraitementCmdListe.java +++ b/Projet_POO/src/liste/TraitementCmdListe.java @@ -31,7 +31,7 @@ public class TraitementCmdListe implements Runnable{ String ip = cmd[3]; if (ordre.equals("listRequest")) { - envoyerNom(); + for (int i = 2000; i<2010; i++) envoyerNom2(i); //TODO } semaphore.acquireUninterruptibly(); diff --git a/Projet_POO/src/reseau/TCPClient.java b/Projet_POO/src/reseau/TCPClient.java index a4b2eab..0368831 100644 --- a/Projet_POO/src/reseau/TCPClient.java +++ b/Projet_POO/src/reseau/TCPClient.java @@ -31,6 +31,7 @@ public class TCPClient { System.out.print("Could not find host\n"); } catch (IOException e) { + e.printStackTrace(); System.out.print("port= "+port+" host= "+host+"\n"); System.out.print("Could not create socket\n"); } diff --git a/Projet_POO/src/reseau/TCPServer.java b/Projet_POO/src/reseau/TCPServer.java index 4748ff4..0da64d7 100644 --- a/Projet_POO/src/reseau/TCPServer.java +++ b/Projet_POO/src/reseau/TCPServer.java @@ -36,6 +36,7 @@ public class TCPServer { public Socket accept() { Socket ssocket = null; try { + System.out.print("En attente de connexions sur le port "+ this.port +", pour l'adresse " + host + "\n"); ssocket = this.socket.accept(); } catch (IOException e) { diff --git a/Projet_POO/src/ui/DiscussionUI.java b/Projet_POO/src/ui/DiscussionUI.java index 7794062..3171905 100644 --- a/Projet_POO/src/ui/DiscussionUI.java +++ b/Projet_POO/src/ui/DiscussionUI.java @@ -23,7 +23,7 @@ public class DiscussionUI extends JFrame implements PropertyChangeListener{ private JPanel contentPane; private JTextField textField; private JTextArea historicField; - private sessionClavardage session; + private SessionClavardage session; /** * Launch the application. @@ -52,12 +52,14 @@ public class DiscussionUI extends JFrame implements PropertyChangeListener{ /** * Create the frame. */ - public DiscussionUI(sessionClavardage session) { + public DiscussionUI(SessionClavardage session) { this.session = session; + + while (this.session.getClientReception() == null); //On attends que le client soit configuré this.session.getClientReception().addPropertyChangeListener(this);; setTitle("Discussion"); - setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); diff --git a/Projet_POO/src/ui/ListUI.java b/Projet_POO/src/ui/ListUI.java index b036111..96d34cd 100644 --- a/Projet_POO/src/ui/ListUI.java +++ b/Projet_POO/src/ui/ListUI.java @@ -10,6 +10,7 @@ import javax.swing.JLabel; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; +import clavardage.gestionnaireClavardage; import liste.GestionnaireListeUtilisateur; import nom.GestionnaireNom; import liste.TypeListeUtilisateur; @@ -60,7 +61,7 @@ public class ListUI extends JFrame implements Runnable{ * Create the frame. */ public ListUI() { - setTitle("List"); + setTitle(GestionnaireNom.instance().getId()); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); @@ -75,13 +76,8 @@ public class ListUI extends JFrame implements Runnable{ int col = table.getSelectedColumn(); try{ String nom = (String) table.getValueAt(row, col); - System.out.println(nom); - - test.add("1"); - test.add("2"); - test.add("3"); - ajouterNomListe(dtm, test); - //String id = GestionnaireNom.idFromNom(nom); + gestionnaireClavardage gc = gestionnaireClavardage.instance(); + gc.createSession(nom); } catch (Exception e) {} diff --git a/Projet_POO/src/ui/Login_RegisterUI.java b/Projet_POO/src/ui/Login_RegisterUI.java index ebc43e2..5748098 100644 --- a/Projet_POO/src/ui/Login_RegisterUI.java +++ b/Projet_POO/src/ui/Login_RegisterUI.java @@ -7,6 +7,7 @@ import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; +import clavardage.gestionnaireClavardage; import liste.GestionnaireListeUtilisateur; import liste.TypeListeUtilisateur; import nom.GestionnaireNom; @@ -75,6 +76,7 @@ public class Login_RegisterUI extends JFrame implements Runnable{ if( pwd.equals("admin") || id.equals("0") ) { //remplaver || par && -> facilite debug GestionnaireNom.instance().setId(id); + gestionnaireClavardage.instance(); //Init(gestionnaireClavardage) //NomUI nom = new NomUI(); //nom.setLocationRelativeTo(null);