Compare commits

..

No commits in common. "e4facad109b9f05de165835389d144c0693f725d" and "f589a1142b244b6da8ceeb0095c4273bb5d19036" have entirely different histories.

10 changed files with 25 additions and 48 deletions

View file

@ -15,7 +15,7 @@ public class gestionnaireClavardage implements Runnable{
public static final int PORT_REQUETE_NOUVELLE_SESSION = 19999; public static final int PORT_REQUETE_NOUVELLE_SESSION = 19999;
public static final int BACKLOG = 10; public static final int BACKLOG = 10;
private static gestionnaireClavardage uniqueInstance = null; private static gestionnaireClavardage uniqueInstance = null;
private ArrayList<SessionClavardage> sessions = new ArrayList<SessionClavardage>(); private ArrayList<sessionClavardage> sessions = new ArrayList<sessionClavardage>();
private TCPServer requestServer; private TCPServer requestServer;
private Thread thread; private Thread thread;
@ -30,7 +30,7 @@ public class gestionnaireClavardage implements Runnable{
//Remplacer par un singleton //Remplacer par un singleton
private gestionnaireClavardage(int backlog) { private gestionnaireClavardage(int backlog) {
GestionnaireNom gn = GestionnaireNom.instance(); GestionnaireNom gn = GestionnaireNom.instance();
this.requestServer = new TCPServer("localhost", backlog, PORT_REQUETE_NOUVELLE_SESSION + Integer.parseInt(gn.getId())); this.requestServer = new TCPServer(gn.getIp(), backlog, PORT_REQUETE_NOUVELLE_SESSION + Integer.parseInt(gn.getId()));
this.thread = new Thread(this); this.thread = new Thread(this);
this.thread.start(); this.thread.start();
} }
@ -38,7 +38,7 @@ public class gestionnaireClavardage implements Runnable{
public void createSession(String name) { public void createSession(String name) {
GestionnaireNom gn = GestionnaireNom.instance(); GestionnaireNom gn = GestionnaireNom.instance();
TCPClient client = new TCPClient(gn.ipFromNom(name), PORT_REQUETE_NOUVELLE_SESSION + Integer.parseInt(gn.idFromNom(name))) ; 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); this.sessions.add(session);
client.send(gn.getId()+"\n"); client.send(gn.getId()+"\n");
System.out.print("Paramètres de session envoyée à " + gn.idFromNom(name) + "\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<SessionClavardage> getSessions() { public ArrayList<sessionClavardage> getSessions() {
return this.sessions; return this.sessions;
} }
public void fermerSessions() { public void fermerSessions() {
for (SessionClavardage s : this.sessions) { for (sessionClavardage s : this.sessions) {
s.stop(); s.stop();
} }
} }
public void printSessions() { public void printSessions() {
for (SessionClavardage s : sessions) { for (sessionClavardage s : sessions) {
System.out.print(s); System.out.print(s);
} }
} }
@ -76,10 +76,8 @@ public class gestionnaireClavardage implements Runnable{
GestionnaireNom gn = GestionnaireNom.instance(); GestionnaireNom gn = GestionnaireNom.instance();
while (true) { while (true) {
Socket ssocket = this.requestServer.accept(); Socket ssocket = this.requestServer.accept();
System.out.print("Données reçues sur le serveur de " + gn.getId() + "\n"); 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); TCPServerThread client = new TCPServerThread(ssocket,false);
String idClient = null; String idClient = null;
@ -93,7 +91,7 @@ public class gestionnaireClavardage implements Runnable{
Thread t = new Thread(client); Thread t = new Thread(client);
t.start(); t.start();
int i = 0; int i = 0;
while (idClient != null && i<this.sessions.size() && !this.sessions.get(i).getIdDestination().equals(idClient)) { while (idClient != null && i<this.sessions.size() && this.sessions.get(i).getIdDestination() != idClient) {
i+=1; i+=1;
} }
if (idClient == null); if (idClient == null);
@ -101,7 +99,7 @@ public class gestionnaireClavardage implements Runnable{
//Il n'existe pas encore de session entre les deux utilisateurs //Il n'existe pas encore de session entre les deux utilisateurs
System.out.print("Nouvelle session sur le serveur de " + gn.getId() + "\n"); System.out.print("Nouvelle session sur le serveur de " + gn.getId() + "\n");
TCPClient clientEnvoi = new TCPClient(client.getAdresseCible(), PORT_REQUETE_NOUVELLE_SESSION + Integer.parseInt(idClient)); TCPClient clientEnvoi = new TCPClient(client.getAdresseCible(), PORT_REQUETE_NOUVELLE_SESSION + Integer.parseInt(idClient));
SessionClavardage session = new SessionClavardage(gn.getId(), idClient, clientEnvoi, client); sessionClavardage session = new sessionClavardage(gn.getId(), idClient, clientEnvoi, client);
this.sessions.add(session); this.sessions.add(session);
clientEnvoi.send(gn.getId()+"\n"); clientEnvoi.send(gn.getId()+"\n");
System.out.print("Fin de la configuration de " + gn.getId() + "\n"); System.out.print("Fin de la configuration de " + gn.getId() + "\n");

View file

@ -1,20 +1,20 @@
package clavardage; package clavardage;
import reseau.*; import reseau.*;
public class SessionClavardage { public class sessionClavardage {
private String idSource = null; private String idSource = null;
private String idDestination = null; private String idDestination = null;
private TCPClient clientEmission = null; private TCPClient clientEmission = null;
private TCPClient clientReception = 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.idSource = idSource;
this.idDestination = idDestination; this.idDestination = idDestination;
this.clientEmission = clientEmission; this.clientEmission = clientEmission;
this.clientReception = clientReception; this.clientReception = clientReception;
} }
public SessionClavardage(String idSource, String idDestination, TCPClient clientReception) { public sessionClavardage(String idSource, String idDestination, TCPClient clientReception) {
this.idSource = idSource; this.idSource = idSource;
this.idDestination = idDestination; this.idDestination = idDestination;
this.clientReception = clientReception; this.clientReception = clientReception;

View file

@ -3,8 +3,6 @@ package clavardage;
import java.awt.EventQueue; import java.awt.EventQueue;
import java.util.ArrayList; import java.util.ArrayList;
import liste.GestionnaireListeUtilisateur;
import liste.TypeListeUtilisateur;
import nom.GestionnaireNom; import nom.GestionnaireNom;
import ui.DiscussionUI; import ui.DiscussionUI;
@ -49,11 +47,6 @@ public class test {
} }
*/ */
public static void main(String[] args) { public static void main(String[] args) {
GestionnaireListeUtilisateur glu = GestionnaireListeUtilisateur.instance();
ArrayList<TypeListeUtilisateur> list = new ArrayList<TypeListeUtilisateur>();
list.add(new TypeListeUtilisateur("10", "User1", "localhost"));
list.add(new TypeListeUtilisateur("11", "User2", "localhost"));
glu.setListeUtilisateur(list);
GestionnaireNom gn = GestionnaireNom.instance(); GestionnaireNom gn = GestionnaireNom.instance();
gn.setId("11"); gn.setId("11");
gn.setIp("localhost"); gn.setIp("localhost");

View file

@ -1,6 +1,5 @@
package defaut; package defaut;
import clavardage.gestionnaireClavardage;
import liste.GestionnaireListeUtilisateur; import liste.GestionnaireListeUtilisateur;
import ui.Login_RegisterUI; import ui.Login_RegisterUI;
@ -9,27 +8,16 @@ import ui.Login_RegisterUI;
public class Main { 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().ecoute2(2002); //enlever le 2, debug //TODO PORT = 2000 à 2009 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().envoie2("add$$$77$$$Moi$$$LocalHost"); GestionnaireListeUtilisateur.instance().envoie("add$$$77$$$Moi$$$LocalHost");
//on met à jour notre liste //on met à jour notre liste
GestionnaireListeUtilisateur.instance().majListe2(); GestionnaireListeUtilisateur.instance().majListe2();
try {
Thread.sleep(0);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//on lance le UI //on lance le UI
Thread t = new Thread(new Login_RegisterUI()); Thread t = new Thread(new Login_RegisterUI());
t.start(); t.start();

View file

@ -31,7 +31,7 @@ public class TraitementCmdListe implements Runnable{
String ip = cmd[3]; String ip = cmd[3];
if (ordre.equals("listRequest")) { if (ordre.equals("listRequest")) {
for (int i = 2000; i<2010; i++) envoyerNom2(i); //TODO envoyerNom();
} }
semaphore.acquireUninterruptibly(); semaphore.acquireUninterruptibly();

View file

@ -31,7 +31,6 @@ public class TCPClient {
System.out.print("Could not find host\n"); System.out.print("Could not find host\n");
} }
catch (IOException e) { catch (IOException e) {
e.printStackTrace();
System.out.print("port= "+port+" host= "+host+"\n"); System.out.print("port= "+port+" host= "+host+"\n");
System.out.print("Could not create socket\n"); System.out.print("Could not create socket\n");
} }

View file

@ -36,7 +36,6 @@ public class TCPServer {
public Socket accept() { public Socket accept() {
Socket ssocket = null; Socket ssocket = null;
try { try {
System.out.print("En attente de connexions sur le port "+ this.port +", pour l'adresse " + host + "\n");
ssocket = this.socket.accept(); ssocket = this.socket.accept();
} }
catch (IOException e) { catch (IOException e) {

View file

@ -23,7 +23,7 @@ public class DiscussionUI extends JFrame implements PropertyChangeListener{
private JPanel contentPane; private JPanel contentPane;
private JTextField textField; private JTextField textField;
private JTextArea historicField; private JTextArea historicField;
private SessionClavardage session; private sessionClavardage session;
/** /**
* Launch the application. * Launch the application.
@ -52,14 +52,12 @@ public class DiscussionUI extends JFrame implements PropertyChangeListener{
/** /**
* Create the frame. * Create the frame.
*/ */
public DiscussionUI(SessionClavardage session) { public DiscussionUI(sessionClavardage session) {
this.session = session; this.session = session;
while (this.session.getClientReception() == null); //On attends que le client soit configuré
this.session.getClientReception().addPropertyChangeListener(this);; this.session.getClientReception().addPropertyChangeListener(this);;
setTitle("Discussion"); setTitle("Discussion");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300); setBounds(100, 100, 450, 300);
contentPane = new JPanel(); contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

View file

@ -10,7 +10,6 @@ import javax.swing.JLabel;
import javax.swing.JTable; import javax.swing.JTable;
import javax.swing.table.DefaultTableModel; import javax.swing.table.DefaultTableModel;
import clavardage.gestionnaireClavardage;
import liste.GestionnaireListeUtilisateur; import liste.GestionnaireListeUtilisateur;
import nom.GestionnaireNom; import nom.GestionnaireNom;
import liste.TypeListeUtilisateur; import liste.TypeListeUtilisateur;
@ -61,7 +60,7 @@ public class ListUI extends JFrame implements Runnable{
* Create the frame. * Create the frame.
*/ */
public ListUI() { public ListUI() {
setTitle(GestionnaireNom.instance().getId()); setTitle("List");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300); setBounds(100, 100, 450, 300);
contentPane = new JPanel(); contentPane = new JPanel();
@ -76,8 +75,13 @@ public class ListUI extends JFrame implements Runnable{
int col = table.getSelectedColumn(); int col = table.getSelectedColumn();
try{ try{
String nom = (String) table.getValueAt(row, col); String nom = (String) table.getValueAt(row, col);
gestionnaireClavardage gc = gestionnaireClavardage.instance(); System.out.println(nom);
gc.createSession(nom);
test.add("1");
test.add("2");
test.add("3");
ajouterNomListe(dtm, test);
//String id = GestionnaireNom.idFromNom(nom);
} }
catch (Exception e) {} catch (Exception e) {}

View file

@ -7,7 +7,6 @@ import javax.swing.JFrame;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.border.EmptyBorder; import javax.swing.border.EmptyBorder;
import clavardage.gestionnaireClavardage;
import liste.GestionnaireListeUtilisateur; import liste.GestionnaireListeUtilisateur;
import liste.TypeListeUtilisateur; import liste.TypeListeUtilisateur;
import nom.GestionnaireNom; import nom.GestionnaireNom;
@ -76,7 +75,6 @@ public class Login_RegisterUI extends JFrame implements Runnable{
if( pwd.equals("admin") || id.equals("0") ) { //remplaver || par && -> facilite debug if( pwd.equals("admin") || id.equals("0") ) { //remplaver || par && -> facilite debug
GestionnaireNom.instance().setId(id); GestionnaireNom.instance().setId(id);
gestionnaireClavardage.instance(); //Init(gestionnaireClavardage)
//NomUI nom = new NomUI(); //NomUI nom = new NomUI();
//nom.setLocationRelativeTo(null); //nom.setLocationRelativeTo(null);