fix qq trucs et encore pb

這個提交存在於:
Elise Barnabe 2021-02-02 16:28:12 +01:00
父節點 dd907d3da6
當前提交 26a0c1341c
共有 26 個檔案被更改,包括 73 行新增77 行删除

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

之前

寬度:  |  高度:  |  大小: 5.8 KiB

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

查看文件

@ -134,7 +134,7 @@ public class Agent implements PropertyChangeListener{
switch(msg.getTypeMessage()) { switch(msg.getTypeMessage()) {
case 0 : case 0 :
//System.out.println("Envoi message présentation"); //System.out.println("Envoi message présentation");
MessagePseudo msgPresentation = new MessagePseudo(this.localAddress, msg.getAddressSrc(), this.user.getPort(), msg.getPortSrc(), 1, this.user.getPseudo(), this.user.getId()); MessagePseudo msgPresentation = new MessagePseudo(this.localAddress, msg.getAddressSrc(), this.user.getPort(), msg.getPortSrc(), 1, this.user.getPseudo(), this.user.getId(), "");
BOut.send(msgPresentation, msg.getAddressSrc(), msg.getPortSrc()); BOut.send(msgPresentation, msg.getAddressSrc(), msg.getPortSrc());
break; break;
case 1 : case 1 :
@ -149,11 +149,12 @@ public class Agent implements PropertyChangeListener{
} }
} }
break; break;
case 2 : case 2 :
MessagePseudo messageDeconnexion = (MessagePseudo) msg; MessagePseudo messageDeconnexion = (MessagePseudo) msg;
boolean pseudoExiste = Request.sendPseudo(messageDeconnexion.getPseudo(), "pseudoOK"); boolean pseudoExiste = Request.sendPseudo(messageDeconnexion.getPseudo(), "pseudoOK");
if(!pseudoExiste){ if(pseudoExiste){
Request.sendDeconnexion(Integer.toString(messageDeconnexion.getId()),messageDeconnexion.getPseudo(), "deconnexion"); //Request.sendDeconnexion(Integer.toString(messageDeconnexion.getId()),messageDeconnexion.getPseudo(), "deconnexion");
FenetreMenu.getCb().removeItem(messageDeconnexion.getPseudo()); FenetreMenu.getCb().removeItem(messageDeconnexion.getPseudo());
} }
@ -164,25 +165,26 @@ public class Agent implements PropertyChangeListener{
if(FenetreChat.isOuvert()&&FenetreChat.getDest().getPseudo().equals(messageDeconnexion.getPseudo())) { if(FenetreChat.isOuvert()&&FenetreChat.getDest().getPseudo().equals(messageDeconnexion.getPseudo())) {
FenetreChat.fermer(); FenetreChat.fermer();
} }
break;
case 3 : case 3 :
MessagePseudo messageNewPseudo = (MessagePseudo) msg; MessagePseudo messageNewPseudo = (MessagePseudo) msg;
//Contact contact = list.findContact(messageNewPseudo.getPseudo()); //Contact contact = list.findContact(messageNewPseudo.getPseudo());
//int id = this.db.getIdFromPseudo(contact.getPseudo()); //int id = this.db.getIdFromPseudo(contact.getPseudo());
for(int i = 0 ; i<FenetreMenu.getCb().getItemCount() ; i++){//Combo étant ton JComboBox for(int i = 0 ; i<FenetreMenu.getCb().getItemCount() ; i++){//Combo étant ton JComboBox
String pseudo = (String) FenetreMenu.getCb().getItemAt(i); String pseudo = (String) FenetreMenu.getCb().getItemAt(i);
if(this.db.getIdFromPseudo(pseudo)==messageNewPseudo.getId()) { if(pseudo.equals(messageNewPseudo.getAncienPseudo())) {
FenetreMenu.getCb().removeItem(pseudo); FenetreMenu.getCb().removeItem(pseudo);
FenetreMenu.getCb().addItem(messageNewPseudo.getPseudo()); FenetreMenu.getCb().addItem(messageNewPseudo.getPseudo());
} }
} }
FenetreMenu.getCb().removeItem(messageNewPseudo.getPseudo()); //FenetreMenu.getCb().removeItem(messageNewPseudo.getPseudo());
} }
} }
public boolean connectInscription(String pseudo, String login) throws IOException, InterruptedException { public boolean connectInscription(String pseudo, String login) throws IOException, InterruptedException {
MessagePseudo msg_connexion = new MessagePseudo(this.localAddress, this.broadcast, this.user.getPort(), App.portDest, 0, "", this.user.getId()); MessagePseudo msg_connexion = new MessagePseudo(this.localAddress, this.broadcast, this.user.getPort(), App.portDest, 0, "", this.user.getId(), "");
BOut.send(msg_connexion, this.broadcast, App.portDest); BOut.send(msg_connexion, this.broadcast, App.portDest);
Thread.sleep(2000); Thread.sleep(2000);
ArrayList<MessagePseudo> msg_recus = BIn.getListMessage(); ArrayList<MessagePseudo> msg_recus = BIn.getListMessage();
@ -197,7 +199,7 @@ public class Agent implements PropertyChangeListener{
Request.sendUser(pseudo, this.localAddress.toString(), Integer.toString(App.portSrc), "addUser"); Request.sendUser(pseudo, this.localAddress.toString(), Integer.toString(App.portSrc), "addUser");
int id = db.addUser(pseudo, login); int id = db.addUser(pseudo, login);
this.user.setId(id); this.user.setId(id);
MessagePseudo msgPresentation = new MessagePseudo(this.localAddress, this.broadcast, this.user.getPort(), App.portDest, 1, this.user.getPseudo(), this.user.getId()); MessagePseudo msgPresentation = new MessagePseudo(this.localAddress, this.broadcast, this.user.getPort(), App.portDest, 1, this.user.getPseudo(), this.user.getId(), "");
BOut.send(msgPresentation, this.broadcast, App.portDest); BOut.send(msgPresentation, this.broadcast, App.portDest);
this.user.setStatut("En ligne"); this.user.setStatut("En ligne");
//System.out.println("Connexion réussie avec le pseudo : "+pseudo); //System.out.println("Connexion réussie avec le pseudo : "+pseudo);
@ -208,7 +210,7 @@ public class Agent implements PropertyChangeListener{
} }
public boolean connectConnexion(String pseudo, String login) throws IOException, InterruptedException { public boolean connectConnexion(String pseudo, String login) throws IOException, InterruptedException {
MessagePseudo msg_connexion = new MessagePseudo(this.localAddress, this.broadcast, this.user.getPort(), App.portDest, 0, "", this.user.getId()); MessagePseudo msg_connexion = new MessagePseudo(this.localAddress, this.broadcast, this.user.getPort(), App.portDest, 0, "", this.user.getId(), "");
BOut.send(msg_connexion, this.broadcast, App.portDest); BOut.send(msg_connexion, this.broadcast, App.portDest);
Thread.sleep(2000); Thread.sleep(2000);
ArrayList<MessagePseudo> msg_recus = BIn.getListMessage(); ArrayList<MessagePseudo> msg_recus = BIn.getListMessage();
@ -221,7 +223,7 @@ public class Agent implements PropertyChangeListener{
Request.sendUser(pseudo, this.localAddress.toString(), Integer.toString(App.portSrc), "addUser"); Request.sendUser(pseudo, this.localAddress.toString(), Integer.toString(App.portSrc), "addUser");
int id = db.getIdFromLogin(login); int id = db.getIdFromLogin(login);
this.user.setId(id); this.user.setId(id);
MessagePseudo msgPresentation = new MessagePseudo(this.localAddress, this.broadcast, this.user.getPort(), App.portDest, 1, this.user.getPseudo(), this.user.getId()); MessagePseudo msgPresentation = new MessagePseudo(this.localAddress, this.broadcast, this.user.getPort(), App.portDest, 1, this.user.getPseudo(), this.user.getId(), "");
BOut.send(msgPresentation, this.broadcast, App.portDest); BOut.send(msgPresentation, this.broadcast, App.portDest);
db.updateStatus(id, "En ligne"); db.updateStatus(id, "En ligne");
this.user.setStatut("En ligne"); this.user.setStatut("En ligne");
@ -247,8 +249,12 @@ public class Agent implements PropertyChangeListener{
public void deconnexion() throws IOException { public void deconnexion() throws IOException {
Request.sendDeconnexion(Integer.toString(this.user.getId()),this.user.getPseudo(), "deconnexion"); Request.sendDeconnexion(Integer.toString(this.user.getId()),this.user.getPseudo(), "deconnexion");
MessagePseudo msgDeconnexion = new MessagePseudo(this.localAddress, this.broadcast, App.portSrc, App.portDest, 2, this.user.getPseudo(), this.user.getId()); MessagePseudo msgDeconnexion = new MessagePseudo(this.localAddress, this.broadcast, App.portSrc, App.portDest, 2, this.user.getPseudo(), this.user.getId(), "");
BOut.send(msgDeconnexion, this.broadcast, App.portSrc); BOut.send(msgDeconnexion, this.broadcast, App.portSrc);
this.BIn.interrupt();
this.BOut.getSocket().close();
//this.server.getSocket().close();
this.server.interrupt();
//list.deleteContact(user); //list.deleteContact(user);
System.exit(1); System.exit(1);
} }
@ -261,7 +267,7 @@ public class Agent implements PropertyChangeListener{
db.updatePseudo(this.user.getId(), pseudo); db.updatePseudo(this.user.getId(), pseudo);
//list.modifierListe(ancienPseudo, pseudo); //list.modifierListe(ancienPseudo, pseudo);
Request.sendPseudoChange(ancienPseudo, pseudo, "pseudoChanged"); Request.sendPseudoChange(ancienPseudo, pseudo, "pseudoChanged");
MessagePseudo msgNewPseudo = new MessagePseudo(this.localAddress, this.broadcast, App.portSrc, App.portDest, 3, pseudo, this.user.getId()); MessagePseudo msgNewPseudo = new MessagePseudo(this.localAddress, this.broadcast, App.portSrc, App.portDest, 3, pseudo, this.user.getId(), ancienPseudo);
BOut.send(msgNewPseudo, this.broadcast, App.portSrc); BOut.send(msgNewPseudo, this.broadcast, App.portSrc);
return true; return true;
}else { }else {

查看文件

@ -4,8 +4,6 @@ import java.sql.*;
import java.util.ArrayList; import java.util.ArrayList;
import model.MessageAffichage; import model.MessageAffichage;
//import model.MessageAffichage;
import model.MessageChat;
public class DataBase { public class DataBase {
@ -201,7 +199,7 @@ public class DataBase {
"idSrc INT NOT NULL,\n" + "idSrc INT NOT NULL,\n" +
"idDest INT NOT NULL,\n" + "idDest INT NOT NULL,\n" +
"message MEDIUMTEXT NOT NULL,\n" + "message MEDIUMTEXT NOT NULL,\n" +
"date_heure DATETIME NOT NULL\n" + "date_heure TIMESTAMP NOT NULL\n" +
");"; ");";
PreparedStatement pStat = null; PreparedStatement pStat = null;
try { try {
@ -285,8 +283,8 @@ public class DataBase {
return result; return result;
} }
public Date getDateFromMessage(int id1, int id2, String message) { public Timestamp getDateFromMessage(int id1, int id2, String message) {
Date date = null; Timestamp date = null;
int idSrc = id1; int idSrc = id1;
int idDest = id2; int idDest = id2;
if(id1>id2) { if(id1>id2) {
@ -301,7 +299,7 @@ public class DataBase {
pStat.setString(1, message); pStat.setString(1, message);
ResultSet resPseudo = pStat.executeQuery(); ResultSet resPseudo = pStat.executeQuery();
if(resPseudo.first()) { if(resPseudo.first()) {
date = resPseudo.getDate("date_heure"); date = resPseudo.getTimestamp("date_heure");
} }
}catch(SQLException e) { }catch(SQLException e) {
e.printStackTrace(); e.printStackTrace();

查看文件

@ -15,8 +15,6 @@ import javax.swing.JTextField;
import javax.swing.SwingConstants; import javax.swing.SwingConstants;
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.io.IOException; import java.io.IOException;
import controller.*; import controller.*;
@ -31,7 +29,7 @@ public class FenetreConnexion implements ActionListener {
JLabel Text; JLabel Text;
JButton Connexion; JButton Connexion;
JButton Cancel; JButton Cancel;
/* /*
* Constructeur d'une fenetre d'affichage pour la connexion d'un utilisateur. * Constructeur d'une fenetre d'affichage pour la connexion d'un utilisateur.
* Cette fenetre sera munie d'un bouton de connexion et d'une zone de saisie de pseudo. * Cette fenetre sera munie d'un bouton de connexion et d'une zone de saisie de pseudo.
@ -70,6 +68,7 @@ public class FenetreConnexion implements ActionListener {
this.Cancel.addActionListener(this); this.Cancel.addActionListener(this);
//On associe au bouton Connexion des actions a realiser //On associe au bouton Connexion des actions a realiser
this.Connexion.addActionListener(this); this.Connexion.addActionListener(this);
this.Connexion.setSelected(false);
// On ajouter les differents elements au panel // On ajouter les differents elements au panel
panel.add(pseudofield); panel.add(pseudofield);
panel.add(Text); panel.add(Text);
@ -86,22 +85,41 @@ public class FenetreConnexion implements ActionListener {
String login = pseudofield.getText(); String login = pseudofield.getText();
boolean loginExiste = false; boolean loginExiste = false;
try { boolean loginEstActif = false;
try {
loginExiste = Request.sendLogin(login, "loginExiste"); loginExiste = Request.sendLogin(login, "loginExiste");
} catch (IOException e1) { } catch (IOException e1) {
System.out.println("Pb envoi requete au serveur"); System.out.println("Pb envoi requete au serveur");
e1.printStackTrace(); e1.printStackTrace();
} }
try {
loginEstActif = Request.sendLogin(login, "estActif");
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
if(!loginExiste) { if(!loginExiste) {
JOptionPane.showMessageDialog(frame, "This login doesn't exist") ; if(!Connexion.isSelected()) {
JOptionPane.showMessageDialog(frame, "This login doesn't exist", "Error", JOptionPane.WARNING_MESSAGE) ;
Connexion.setSelected(true);
frame.dispose();
new FenetreConnexion();
}
}else if(loginEstActif){
if(!Connexion.isSelected()) {
JOptionPane.showMessageDialog(frame, "This login is used by an active user", "Error", JOptionPane.WARNING_MESSAGE) ;
Connexion.setSelected(true);
frame.dispose();
new FenetreConnexion();
}
}else { }else {
// On crée un objet de type ChatApp // On crée un objet de type ChatApp
Agent agent; Agent agent;
boolean connexion; boolean connexion;
try { try {
agent = new Agent(Tools.getAdress()[0], App.portSrc, App.portDest, login); agent = new Agent(Tools.getAdress()[0], App.portSrc, App.portDest, login);
String pseudo = agent.getDb().getPseudoFromLogin(login); String pseudo = agent.getDb().getPseudoFromLogin(login);
// on tente une connexion avec ce pseudo // on tente une connexion avec ce pseudo

查看文件

@ -87,7 +87,7 @@ public class FenetreModifPseudo implements ActionListener {
frame.dispose(); frame.dispose();
new FenetreMenu(agent); new FenetreMenu(agent);
}else { }else {
JOptionPane.showMessageDialog(frame, "Pseudo already, use choose another one"); JOptionPane.showMessageDialog(frame, "Pseudo already use, choose another one");
} }
} catch (HeadlessException e1) { } catch (HeadlessException e1) {
e1.printStackTrace(); e1.printStackTrace();

未顯示二進位檔案。

之前

寬度:  |  高度:  |  大小: 5.8 KiB

查看文件

@ -1,26 +0,0 @@
package model;
import java.net.InetAddress;
public class MessageDeconnexion extends Message{
private String msg;
private String pseudo;
public MessageDeconnexion(InetAddress addressSrc, InetAddress addressDest, int portSrc, int portDest, int typeMessage, String pseudo) {
super(addressSrc, addressDest, portSrc, portDest, typeMessage);
this.pseudo = pseudo;
this.msg = "Deconnexion";
}
public String getPseudo() {
return pseudo;
}
public void setPseudo(String pseudo) {
this.pseudo = pseudo;
}
public String getMsg() {
return msg;
}
}

查看文件

@ -6,11 +6,13 @@ public class MessagePseudo extends Message{
private String pseudo; private String pseudo;
private int id; private int id;
private String ancienPseudo;
public MessagePseudo(InetAddress addressSrc, InetAddress addressDest, int portSrc, int portDest, int typeMessage,String pseudo, int id) { public MessagePseudo(InetAddress addressSrc, InetAddress addressDest, int portSrc, int portDest, int typeMessage,String pseudo, int id, String ancienPseudo) {
super(addressSrc, addressDest, portSrc, portDest, typeMessage); super(addressSrc, addressDest, portSrc, portDest, typeMessage);
this.pseudo = pseudo; this.pseudo = pseudo;
this.id = id; this.id = id;
this.ancienPseudo=ancienPseudo;
} }
public String getPseudo() { public String getPseudo() {
@ -28,6 +30,14 @@ public class MessagePseudo extends Message{
public void setId(int id) { public void setId(int id) {
this.id=id; this.id=id;
} }
public String getAncienPseudo() {
return ancienPseudo;
}
public void setAncienPseudo(String ancienPseudo) {
this.ancienPseudo = ancienPseudo;
}
} }

查看文件

@ -58,4 +58,8 @@ public class TCPServer extends Thread{
public TCPChat getConnexionTCPChat() { public TCPChat getConnexionTCPChat() {
return this.listeConnexions.remove(0); return this.listeConnexions.remove(0);
} }
public ServerSocket getSocket() {
return this.socket;
}
} }

查看文件

@ -34,7 +34,11 @@ public class UDPOutput {
System.out.println("Message envoyé, pseudo = "+msg.getPseudo()+" et num port destination = "+portSrc+"\n"); System.out.println("Message envoyé, pseudo = "+msg.getPseudo()+" et num port destination = "+portSrc+"\n");
} }
public void send(MessageDeconnexion msg, InetAddress addressDest, int portSrc) throws IOException { public DatagramSocket getSocket() {
return this.socket;
}
/*public void send(MessageChangePseudo msg, InetAddress addressDest, int portSrc) throws IOException {
byte[] buffer = "".getBytes(); byte[] buffer = "".getBytes();
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
ObjectOutputStream objectOutStream = new ObjectOutputStream(byteOutStream); ObjectOutputStream objectOutStream = new ObjectOutputStream(byteOutStream);
@ -43,8 +47,8 @@ public class UDPOutput {
buffer = byteOutStream.toByteArray(); buffer = byteOutStream.toByteArray();
DatagramPacket packet = new DatagramPacket(buffer,buffer.length,msg.getAddressDest(),msg.getPortDest()); DatagramPacket packet = new DatagramPacket(buffer,buffer.length,msg.getAddressDest(),msg.getPortDest());
this.socket.send(packet); this.socket.send(packet);
System.out.println("Message envoyé, pseudo = "+msg.getMsg()+" et num port destination = "+portSrc+"\n"); System.out.println("Message envoyé, pseudo = "+msg.getPseudo()+" et num port destination = "+portSrc+"\n");
} }*/
} }

查看文件

@ -1,18 +0,0 @@
package server;
import network.TCPChat;
public class Server {
private final String path;
private final int port;
private TCPChat serverConnection;
public Server(String path, int port) {
this.path=path;
this.port=port;
}
public void suscribe() {
}
}