Gestion des fenetres de clavardage
This commit is contained in:
vanhempi
99feee7e8b
commit
b3f0a3220c
3 muutettua tiedostoa jossa 59 lisäystä ja 3 poistoa
|
@ -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
|
||||
*
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -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
|
||||
|
|
Ladataan…
Viittaa uudesa ongelmassa