This commit is contained in:
Auriane Lartigue 2020-12-16 12:10:28 +01:00
джерело 99feee7e8b
коміт 8791c73d38
15 змінених файлів з 160 додано та 5 видалено

BIN
Implementation/src/Controller/ChatApp.class Звичайний файл

Бінарний файл не відображається.

@ -22,7 +22,6 @@ import src.Protocoles.*;
* Classe recapitulant toutes les actions possibles pour un utilisateur
* </p>
*/
public class ChatApp {
/* Liste des utilisateurs actifs */
@ -199,10 +198,6 @@ public class ChatApp {
public static void main (String[] args) throws IOException {
ChatApp app = new ChatApp(args[0],Integer.parseInt(args[1])) ;
ExecutorService execUDP = Executors.newFixedThreadPool(1000);
execUDP.submit(new RunnerEcouteUDP(app));
try {

BIN
Implementation/src/Controller/Historique.class Звичайний файл

Бінарний файл не відображається.

Бінарний файл не відображається.

BIN
Implementation/src/Controller/MessageHorodate.class Звичайний файл

Бінарний файл не відображається.

BIN
Implementation/src/Controller/Utilisateur.class Звичайний файл

Бінарний файл не відображається.

BIN
Implementation/src/Model/DataBase.class Звичайний файл

Бінарний файл не відображається.

160
Implementation/src/Model/DataBase.java Звичайний файл

@ -0,0 +1,160 @@
package src.Model;
import java.io.IOException;
import java.sql.*;
import java.util.Date;
public class DataBase {
private String DBurl = "jdbc:mysql://srv-bdens.insa-toulouse.fr:3306" ;
private Connection connection = null;
private String login = "tp_servlet_006";
private String pswd = "baePh9ei";
/*Format de la table
+--------+-------------+---------+---------------------+
| ID | Pseudo | Actif | Date d'inscription |
+--------+-------------+---------+---------------------+
Id correspond à l'addresse IP
Pseudo : Dernier Pseudo utilisé pour cette adresse IP, va etre remplacé par le pseudo actuel avec majPseudo
Date d'inscription comme son nom l'indique le jour de l'inscription de cette utilisateur
Actif est un boolean indicant si l'utilisateur est actif
Chaque communication entres utilisateurs sera stocké dans une table de la forme
+------------------+-----------+---------------+---------------+
| Destinataire | Source | Message | Date d'envoi |
+--------+---------------------+---------------+---------------+
Destinataire -> Id du destinataire du message
Source -> Id de celui qui envoie le message
Message -> Msg envoye
Date d'envoie -> Date a laquelle Source a envoye le message a destinataire
*/
public DataBase() {
try {
// Besoin d'installer le driver JDBC entre java IDE et le system DBMS pour faire un pont entre les deux
Class.forName("java.sql.Driver");
System.out.println("Driver Installe");
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.out.println("Echec installation Driver");
}
try {
// Etablir une connexion , forme : (url, "myLogin", "myPassword");
this.connection = DriverManager.getConnection(this.DBurl,login,pswd);
System.out.println("Connexion Etablie");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("Echec d'etablissement de la connexion");
}
}
/*
* Methode permettant de creer une table pour stocker les messages entre deux utilisateurs
* @param ID1 Id du premier utilisateur
* @param ID2 Id du second utilisateur
*/
public void CreationTableHistorique(String ID1 , String ID2) {
// Pour eviter d'avoir les tables en double
String petit;
String grand;
int comparaison = ID1.compareTo(ID2);
if (comparaison < 0) {
petit = ID1;
grand = ID2 ;
}
else {
petit = ID2;
grand = ID1 ;
}
String nomTable = "Chat_" + petit + "_" + grand ;
String Requete = "CREATE TABLE IF NOT EXISTS " + nomTable + "( Destinataire VARCHAR, Source VARCHAR, Message , Date d'envoi)" ;
Statement stmt = null ;
//Statement est utilisé pour envoyer une requete SQL à la base de donnee
try {
stmt= connection.createStatement();
System.out.println("Statement cree");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("Echec creation Statement");
}
//Execute la donnée SQL statement passe en parametre
try {
stmt.executeUpdate(Requete);
} catch (SQLException e) {
e.printStackTrace();
System.out.println(" Echec executeUpdate ");
}
}
/*
* Methode permettant de mettre a jour le pseudo d'un utilisateur en fonction de son ID dans la base de donnee
* @param ID Id de l'utilisateur qui vient de changer de pseudo
* @param Pseudo Nouveau Pseudo de l'utilisateur
*/
public void majPseudo( String ID , String Pseudo) {
String requete = "UPDATE Utilisateurs SET Pseudo = '"+Pseudo+" WHERE ID = '"+ID+"'";
Statement stmt = null ;
//Statement est utilisé pour envoyer une requete SQL à la base de donnee
try {
stmt= connection.createStatement();
System.out.println("Statement cree");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("Echec creation Statement");
}
//Execute la donnée SQL statement passe en parametre
try {
stmt.executeUpdate(requete);
} catch (SQLException e) {
e.printStackTrace();
System.out.println(" Echec executeUpdate ");
}
}
/*
* Methode permettant de mettre a jour le pseudo d'un utilisateur en fonction de son ID dans la base de donnee
* @param IDdest Id de l'utilisateur Destinataire du message
* @param IDdest Id de celui qui envoi le message
* @param Msg Message envoye entre les deux utilisateurs
* @param date Date de l'envoi du message
*/
public void ajoutHistorique(String IDdest , String IDsrc, String Msg, Date date) {
// A REMPLIR
}
/*
* Methode permettant de mettre a jour le pseudo d'un utilisateur en fonction de son ID dans la base de donnee
* @param ID Id de l'utilisateur qui vient de se connecter pour la premiere fois
* @param Pseudo pseudo actuelle de l'utilisateur
*/
public void ajoutUtilisateurs(String ID , String Pseudo ) {
// A REMPLIR
Date date = new Date();
String dateString = date.toString();
String BooleanActif = "true";
}
/*
* Methode permettant de mettre a jour les utilisateurs actuellement actif
* @param ID Id de l'utilisateur qui vient de se connecter ou deconnecter
* @param connecte Boolean true si il est connecte , false sinon
*/
public void majUtilisateursActifs(Boolean Connecte, String Id) {
// A REMPLIR
}
public static void main (String[] args) throws IOException {
DataBase DB = new DataBase();
DB.CreationTableHistorique("Auriane", "Nabil");
}
}

BIN
Implementation/src/Protocoles/RunnerEcouteTCP.class Звичайний файл

Бінарний файл не відображається.

BIN
Implementation/src/Protocoles/RunnerEcouteUDP.class Звичайний файл

Бінарний файл не відображається.

BIN
Implementation/src/Protocoles/RunnerTCPEcoute.class Звичайний файл

Бінарний файл не відображається.

BIN
Implementation/src/Protocoles/RunnerTCPEnvoi.class Звичайний файл

Бінарний файл не відображається.

BIN
Implementation/src/Protocoles/RunnerUDP.class Звичайний файл

Бінарний файл не відображається.

BIN
Implementation/src/Protocoles/TCPEchange.class Звичайний файл

Бінарний файл не відображається.

BIN
Implementation/src/Protocoles/UDPEchange.class Звичайний файл

Бінарний файл не відображається.