fix qq trucs et encore pb

This commit is contained in:
Elise Barnabe 2021-02-02 16:28:12 +01:00
父節點 dd907d3da6
當前提交 26a0c1341c
共有 26 個文件被更改,包括 73 次插入77 次删除

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  大小: 5.8 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

查看文件

@ -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,6 +165,7 @@ 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;
@ -171,18 +173,18 @@ public class Agent implements PropertyChangeListener{
//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.*;
@ -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;
boolean loginEstActif = false;
try { 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();

Binary file not shown.

Before

Width:  |  Height:  |  大小: 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() {
@ -29,5 +31,13 @@ public class MessagePseudo extends Message{
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() {
}
}