Gestion des fenetres de clavardage

This commit is contained in:
Nabzzz 2020-12-20 13:17:33 +01:00
vanhempi 99feee7e8b
commit b3f0a3220c
3 muutettua tiedostoa jossa 59 lisäystä ja 3 poistoa

Näytä tiedosto

@ -1,5 +1,6 @@
package src.Controller;
import java.net.InetAddress;
import java.util.ArrayList;
public class ListUtilisateurs {
@ -37,6 +38,16 @@ public class ListUtilisateurs {
return null ;
}
public Utilisateur getIPList(InetAddress ip) throws Exception {
for(Utilisateur elem: this.actifUsers)
{
if (elem.getIp().equals(ip) ) {
return elem ;
}
}
throw new Exception("No such user with this IP address") ;
}
/**
* Supprimer de la liste des utilisateurs actifs 'actifUsers' un certain utilisateur
*

Näytä tiedosto

@ -1,16 +1,58 @@
package src.Protocoles;
import src.Controller.ChatApp;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class RunnerEcouteTCP implements Runnable {
ChatApp app ;
public ChatApp app ;
private PropertyChangeSupport pcs;
private ArrayList<SessionClavardage> ListeSessions = new ArrayList<SessionClavardage>();
public RunnerEcouteTCP(ChatApp app) {
this.app = app ;
this.pcs = new PropertyChangeSupport(this);
}
public void addPropertyChangeListener(PropertyChangeListener pcl) {
this.pcs.addPropertyChangeListener("NouvelleSession",pcl);
}
/**
* <p>
* Méthode pour qu'un objet de la classe ChatApp soit constamment en écoute de potentielles connexions
* @param app L'utilisateur en écoute de potentielles communications
* </p>
*/
public void ecouteTCP(ChatApp app) {
ServerSocket ss = null;
System.out.println("Ecoute TCP activee");
try {
ss = new ServerSocket(5000); // On ecoute sur le port 5000
System.out.println("Socket d'ecoute cree");
while(true) { // Ecoute en boucle
System.out.println("Attente Session de clavardage");
Socket link = ss.accept(); // Blocante
SessionClavardage session = new SessionClavardage(link,app);
this.ListeSessions.add(session);
pcs.firePropertyChange("NouvelleSession",false,true);
}
}
catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void run() {
TCPEchange.ecouteTCP(app);
ecouteTCP(this.app);
}
}

Näytä tiedosto

@ -85,6 +85,9 @@ public class View_Clavardage {
// Creation d'un bouton envoye
JButton send = new JButton("Envoye");
frame.getRootPane().setDefaultButton(send);
//******************************************************************************************************************
//**************************************** GERER LES ECHANGES ENTRE UTILISATEURS ***********************************
//******************************************************************************************************************
send.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event) {
//UTILISER TCPENVOI