list actifs user deplacée sur server
这个提交包含在:
父节点
9af289bc55
当前提交
db688b27a1
共有 62 个文件被更改,包括 524 次插入 和 177 次删除
|
@ -11,7 +11,7 @@
|
|||
<attribute name="module" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="lib" path="C:/Users/momof/OneDrive/Documents/INSA/4A/poo/java-json.jar">
|
||||
<classpathentry kind="lib" path="C:/Users/elise/OneDrive/Bureau/ELISE/INSA/4A/POO COO/java-json.jar">
|
||||
<attributes>
|
||||
<attribute name="module" value="true"/>
|
||||
</attributes>
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=13
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=13
|
||||
org.eclipse.jdt.core.compiler.compliance=11
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||
|
@ -12,4 +12,4 @@ org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
|
|||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
|
||||
org.eclipse.jdt.core.compiler.release=enabled
|
||||
org.eclipse.jdt.core.compiler.source=13
|
||||
org.eclipse.jdt.core.compiler.source=11
|
||||
|
|
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制
chatGit/bin/server/Request.class
普通文件
二进制
chatGit/bin/server/Request.class
普通文件
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"serveur":{
|
||||
"actif": 1,
|
||||
"url": "test",
|
||||
"port": 30000
|
||||
"url": "http://localhost:8080/test/toto",
|
||||
"port": 8080
|
||||
},
|
||||
"config":{
|
||||
"interface": "wlan3",
|
||||
"portSrc": 26001,
|
||||
"portDest":26000
|
||||
"interface": "wlan2",
|
||||
"portSrc": 26000,
|
||||
"portDest":26001
|
||||
}
|
||||
}
|
二进制
chatGit/panda.png
普通文件
二进制
chatGit/panda.png
普通文件
二进制文件未显示。
之后 宽度: | 高度: | 大小: 5.8 KiB |
|
@ -16,9 +16,10 @@ import javax.swing.text.StyledDocument;
|
|||
|
||||
import config.Configuration;
|
||||
import gui.FenetreChat;
|
||||
import gui.FenetreMenu;
|
||||
import model.*;
|
||||
import network.*;
|
||||
import server.Server;
|
||||
import server.Request;
|
||||
import test.App;
|
||||
|
||||
public class Agent implements PropertyChangeListener{
|
||||
|
@ -27,15 +28,13 @@ public class Agent implements PropertyChangeListener{
|
|||
private UDPOutput BOut;
|
||||
//private TCPChat TCPSend;
|
||||
private TCPServer server;
|
||||
private ListeContacts list;
|
||||
//private ListeContacts list;
|
||||
private InetAddress localAddress;
|
||||
private InetAddress broadcast;
|
||||
private ArrayList<TCPChat> listTCPOk;
|
||||
private ArrayList<TCPChat> listTCPDeg;
|
||||
private DataBase db;
|
||||
|
||||
private Server serverPresence;
|
||||
|
||||
private PropertyChangeSupport support;
|
||||
|
||||
|
||||
|
@ -47,7 +46,7 @@ public class Agent implements PropertyChangeListener{
|
|||
this.server = new TCPServer(user.getPort(), user.getAddress());
|
||||
this.server.addPropertyChangeListener(this);
|
||||
//this.TCPSend = new TCPChat(user);
|
||||
this.list = ListeContacts.getInstance();
|
||||
//this.list = ListeContacts.getInstance();
|
||||
this.localAddress=Tools.getAdress()[0];
|
||||
this.broadcast= Tools.getAdress()[1];
|
||||
this.db = DataBase.getInstance();
|
||||
|
@ -67,7 +66,7 @@ public class Agent implements PropertyChangeListener{
|
|||
this.server = new TCPServer(user.getPort(), user.getAddress());
|
||||
this.server.addPropertyChangeListener(this);
|
||||
//this.TCPSend = new TCPChat(user);
|
||||
this.list = ListeContacts.getInstance();
|
||||
//this.list = ListeContacts.getInstance();
|
||||
this.localAddress=Tools.getAdress()[0];
|
||||
this.broadcast= Tools.getAdress()[1];
|
||||
this.listTCPOk = new ArrayList<TCPChat>();
|
||||
|
@ -104,98 +103,91 @@ public class Agent implements PropertyChangeListener{
|
|||
TCPChat tcpChatCo = this.listTCPOk.get(0);
|
||||
MessageChat msgRecu = tcpChatCo.getMessageRecu();
|
||||
//FenetreChat.getTa().append("kevin"+ " : "+msgRecu.getMessage()+"\n");
|
||||
StyledDocument doc = FenetreChat.getDoc();
|
||||
try {
|
||||
doc.insertString(doc.getLength(), "\n"+msgRecu.getMessage(), left );
|
||||
} catch (BadLocationException e) {
|
||||
e.printStackTrace();
|
||||
if(FenetreChat.isOuvert()) {
|
||||
StyledDocument doc = FenetreChat.getDoc();
|
||||
try {
|
||||
doc.insertString(doc.getLength(), "\n"+msgRecu.getMessage(), left );
|
||||
} catch (BadLocationException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
doc.setParagraphAttributes(doc.getLength(), 1, left, false);
|
||||
break;
|
||||
}
|
||||
doc.setParagraphAttributes(doc.getLength(), 1, left, false);
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
//Envoi sur 5001 et reçoit sur 5000
|
||||
public void testSendBroadcast() throws IOException, InterruptedException {
|
||||
MessagePseudo msg = new MessagePseudo(this.user.getAddress(), Tools.getLocalIp(), user.getPort(), 14000, 1, "Michel");
|
||||
BOut.send(msg, user.getAddress(), user.getPort());
|
||||
Thread.sleep(10);
|
||||
MessagePseudo msgRecu = BIn.getMessage();
|
||||
handleMessage(msgRecu);
|
||||
MessagePseudo msg2 = new MessagePseudo(this.user.getAddress(), Tools.getLocalIp(), user.getPort(), 14000, 1, "Jacques");
|
||||
BOut.send(msg2, user.getAddress(), user.getPort());
|
||||
Thread.sleep(10);
|
||||
MessagePseudo msgRecu2 = BIn.getMessage();
|
||||
handleMessage(msgRecu2);
|
||||
MessagePseudo msg3 = new MessagePseudo(this.user.getAddress(), Tools.getLocalIp(), user.getPort(), 14000, 1, "Bob");
|
||||
BOut.send(msg3, user.getAddress(), user.getPort());
|
||||
Thread.sleep(10);
|
||||
MessagePseudo msgRecu3 = BIn.getMessage();
|
||||
handleMessage(msgRecu3);
|
||||
choisirPseudo("Bob");
|
||||
choisirPseudo("Patrick");
|
||||
}
|
||||
|
||||
|
||||
/*public void testSendTCP() throws IOException, InterruptedException {
|
||||
|
||||
TCPSend.sendMsg("COUCOU");
|
||||
Thread.sleep(1000);
|
||||
TCPSend.sendMsg("Ca va ?");
|
||||
Thread.sleep(1000);
|
||||
TCPSend.sendMsg("Non je suis KO");
|
||||
Thread.sleep(1000);
|
||||
TCPSend.sendMsg("Moi aussi :'(");
|
||||
Thread.sleep(1000);
|
||||
|
||||
}*/
|
||||
|
||||
/*type 0 : premier message de broadcast
|
||||
* type, 1 : deuxieme message de broadcast avec pseudo
|
||||
* type 2 : Message de déconnexion
|
||||
* type 3 : message pseudo changé
|
||||
* type 4 : Message affichage
|
||||
* type 5 : Message chat
|
||||
*/
|
||||
|
||||
public void handleMessage(Message msg) throws IOException {
|
||||
switch(msg.getTypeMessage()) {
|
||||
case 0 :
|
||||
//System.out.println("Envoi message présentation");
|
||||
MessagePseudo msgPresentation = new MessagePseudo(this.localAddress, msg.getAddressSrc(), this.user.getPort(), msg.getPortSrc(), 1, this.user.getPseudo());
|
||||
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());
|
||||
break;
|
||||
case 1 :
|
||||
MessagePseudo msgPseudo = (MessagePseudo) msg;
|
||||
if(!list.pseudoExist(msgPseudo.getPseudo())) {
|
||||
boolean pseudoExist = Request.sendPseudo(msgPseudo.getPseudo(), "pseudoOK");
|
||||
if(pseudoExist) {
|
||||
Contact newUser = new Contact(msgPseudo.getPseudo(), msgPseudo.getAddressSrc(), msgPseudo.getPortSrc());
|
||||
list.addContact(newUser);
|
||||
Request.sendUser(msgPseudo.getPseudo(), msgPseudo.getAddressSrc().toString(), Integer.toString(msgPseudo.getPortSrc()), "addUser");
|
||||
//list.addContact(newUser);
|
||||
if(FenetreMenu.ouvert) {
|
||||
FenetreMenu.getCb().addItem(newUser.getPseudo());
|
||||
}
|
||||
}
|
||||
break;
|
||||
/*case 2 :
|
||||
MessageDeconnexion messageDeconnexion = (MessageDeconnexion) msg;
|
||||
if(list.pseudoExist(messageDeconnexion.getPseudo())){
|
||||
Contact contact = list.findContact(messageDeconnexion.getPseudo());
|
||||
list.deleteContact(contact);
|
||||
}*/
|
||||
case 2 :
|
||||
MessagePseudo messageDeconnexion = (MessagePseudo) msg;
|
||||
boolean pseudoExiste = Request.sendPseudo(messageDeconnexion.getPseudo(), "pseudoOK");
|
||||
if(!pseudoExiste){
|
||||
Request.sendDeconnexion(Integer.toString(messageDeconnexion.getId()),messageDeconnexion.getPseudo(), "deconnexion");
|
||||
FenetreMenu.getCb().removeItem(messageDeconnexion.getPseudo());
|
||||
}
|
||||
case 3 :
|
||||
MessagePseudo messageNewPseudo = (MessagePseudo) msg;
|
||||
//Contact contact = list.findContact(messageNewPseudo.getPseudo());
|
||||
//int id = this.db.getIdFromPseudo(contact.getPseudo());
|
||||
for(int i = 0 ; i<FenetreMenu.getCb().getItemCount() ; i++){//Combo étant ton JComboBox
|
||||
String pseudo = (String) FenetreMenu.getCb().getItemAt(i);
|
||||
if(this.db.getIdFromPseudo(pseudo)==messageNewPseudo.getId()) {
|
||||
FenetreMenu.getCb().removeItem(pseudo);
|
||||
FenetreMenu.getCb().addItem(messageNewPseudo.getPseudo());
|
||||
}
|
||||
}
|
||||
FenetreMenu.getCb().removeItem(messageNewPseudo.getPseudo());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
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, "");
|
||||
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);
|
||||
Thread.sleep(5000);
|
||||
ArrayList<MessagePseudo> msg_recus = BIn.getListMessage();
|
||||
for(int i =0; i<msg_recus.size(); i++) {
|
||||
handleMessage(msg_recus.get(i));
|
||||
}
|
||||
|
||||
boolean pseudoOK = choisirPseudo(pseudo);
|
||||
list.addContact(user);
|
||||
//list.addContact(user);
|
||||
|
||||
if(pseudoOK){
|
||||
Request.sendUser(pseudo, this.localAddress.toString(), Integer.toString(App.portSrc), "addUser");
|
||||
int id = db.addUser(pseudo, login);
|
||||
this.user.setId(id);
|
||||
MessagePseudo msgPresentation = new MessagePseudo(this.localAddress, this.broadcast, this.user.getPort(), App.portDest, 1, this.user.getPseudo());
|
||||
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);
|
||||
this.user.setStatut("En ligne");
|
||||
//System.out.println("Connexion réussie avec le pseudo : "+pseudo);
|
||||
|
@ -206,7 +198,7 @@ public class Agent implements PropertyChangeListener{
|
|||
}
|
||||
|
||||
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, "");
|
||||
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);
|
||||
Thread.sleep(5000);
|
||||
ArrayList<MessagePseudo> msg_recus = BIn.getListMessage();
|
||||
|
@ -214,12 +206,14 @@ public class Agent implements PropertyChangeListener{
|
|||
handleMessage(msg_recus.get(i));
|
||||
}
|
||||
boolean pseudoOK = choisirPseudo(pseudo);
|
||||
list.addContact(user);
|
||||
//list.addContact(user);
|
||||
if(pseudoOK){
|
||||
Request.sendUser(pseudo, this.localAddress.toString(), Integer.toString(App.portSrc), "addUser");
|
||||
int id = db.getIdFromLogin(login);
|
||||
this.user.setId(id);
|
||||
MessagePseudo msgPresentation = new MessagePseudo(this.localAddress, this.broadcast, this.user.getPort(), App.portDest, 1, this.user.getPseudo());
|
||||
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);
|
||||
db.updateStatus(id, "En ligne");
|
||||
this.user.setStatut("En ligne");
|
||||
//System.out.println("Connexion réussie avec le pseudo : "+pseudo);
|
||||
}else {
|
||||
|
@ -228,8 +222,10 @@ public class Agent implements PropertyChangeListener{
|
|||
return pseudoOK;
|
||||
}
|
||||
|
||||
public boolean choisirPseudo(String pseudo) {
|
||||
if(!list.pseudoExist(pseudo)){
|
||||
public boolean choisirPseudo(String pseudo) throws IOException {
|
||||
boolean pseudoExist = Request.sendPseudo(pseudo, "pseudoOK");
|
||||
|
||||
if(pseudoExist){
|
||||
user.setPseudo(pseudo);
|
||||
//System.out.println("Pseudo set : "+pseudo);
|
||||
return true;
|
||||
|
@ -240,16 +236,23 @@ public class Agent implements PropertyChangeListener{
|
|||
}
|
||||
|
||||
public void deconnexion() throws IOException {
|
||||
MessageDeconnexion msgDeconnexion = new MessageDeconnexion(this.localAddress, this.broadcast, this.user.getPort(), 25000, 3, user.getPseudo());
|
||||
BOut.send(msgDeconnexion, this.broadcast, this.user.getPort());
|
||||
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());
|
||||
BOut.send(msgDeconnexion, this.broadcast, App.portSrc);
|
||||
//list.deleteContact(user);
|
||||
System.exit(1);
|
||||
}
|
||||
|
||||
public boolean changerPseudo(String pseudo) {
|
||||
public boolean changerPseudo(String pseudo) throws IOException {
|
||||
String ancienPseudo = user.getPseudo();
|
||||
boolean changeOK = choisirPseudo(pseudo);
|
||||
if(changeOK){
|
||||
//System.out.println("Pseudo changé à : "+pseudo);
|
||||
db.updatePseudo(this.user.getId(), pseudo);
|
||||
//list.modifierListe(ancienPseudo, pseudo);
|
||||
Request.sendPseudoChange(ancienPseudo, pseudo, "pseudoChanged");
|
||||
MessagePseudo msgNewPseudo = new MessagePseudo(this.localAddress, this.broadcast, App.portSrc, App.portDest, 3, pseudo, this.user.getId());
|
||||
BOut.send(msgNewPseudo, this.broadcast, App.portSrc);
|
||||
return true;
|
||||
}else {
|
||||
//System.out.println("Veuillez choisir un autre pseudo");
|
||||
|
@ -270,39 +273,24 @@ public class Agent implements PropertyChangeListener{
|
|||
public void createChat (int destId, String destPseudo) throws IOException {
|
||||
boolean chatExists = chatExists(destId);
|
||||
if(!chatExists) {
|
||||
for(Contact user : list.getListe()) {
|
||||
boolean isNotOnList = Request.sendPseudo(destPseudo, "pseudoOK");
|
||||
if(!isNotOnList) {
|
||||
Contact dest = Request.getUser(destPseudo, "getUser");
|
||||
TCPChat connexionTCP = new TCPChat(user, destId);
|
||||
listTCPDeg.add(connexionTCP);
|
||||
connexionTCP.addPropertyChangeListener(this);
|
||||
}
|
||||
/*for(Contact user : list.getListe()) {
|
||||
if(user.getPseudo().equals(destPseudo)) {
|
||||
TCPChat connexionTCP = new TCPChat(user, destId);
|
||||
listTCPDeg.add(connexionTCP);
|
||||
connexionTCP.addPropertyChangeListener(this);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void initServer(Configuration conf) {
|
||||
final Configuration.SConf sConf = conf.getsConf();
|
||||
if(sConf.isOK()) {
|
||||
try {
|
||||
final String url = sConf.getUrl();
|
||||
final int port = sConf.getPortServer();
|
||||
this.serverPresence = new Server(url, port);
|
||||
subscribeToServer();
|
||||
}catch(Exception e) {
|
||||
serverPresence = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void subscribeToServer() {
|
||||
if(this.serverPresence != null ) {
|
||||
serverPresence.suscribe();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void addPropertyChangeListener(PropertyChangeListener pcl, String propertyName){
|
||||
this.support.addPropertyChangeListener(propertyName, pcl);
|
||||
}
|
||||
|
@ -325,7 +313,7 @@ public class Agent implements PropertyChangeListener{
|
|||
|
||||
|
||||
|
||||
public ListeContacts getList() {
|
||||
/*public ListeContacts getList() {
|
||||
return list;
|
||||
}
|
||||
|
||||
|
@ -333,7 +321,7 @@ public class Agent implements PropertyChangeListener{
|
|||
|
||||
public void setList(ListeContacts list) {
|
||||
this.list = list;
|
||||
}
|
||||
}*/
|
||||
|
||||
|
||||
public DataBase getDb() {
|
||||
|
@ -354,4 +342,5 @@ public class Agent implements PropertyChangeListener{
|
|||
public TCPChat getTCPChat() {
|
||||
return this.listTCPDeg.remove(0);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -201,7 +201,7 @@ public class DataBase {
|
|||
"idSrc INT NOT NULL,\n" +
|
||||
"idDest INT NOT NULL,\n" +
|
||||
"message MEDIUMTEXT NOT NULL,\n" +
|
||||
"date DATE NOT NULL\n" +
|
||||
"date_heure DATETIME NOT NULL\n" +
|
||||
");";
|
||||
PreparedStatement pStat = null;
|
||||
try {
|
||||
|
@ -243,7 +243,7 @@ public class DataBase {
|
|||
idDest = id1;
|
||||
}
|
||||
String nameTable = idSrc+"_"+idDest;
|
||||
String query = "INSERT INTO " + nameTable + "(idSrc, idDest, message, date) VALUES (?, ?, ?, CURRENT_TIME)";
|
||||
String query = "INSERT INTO " + nameTable + "(idSrc, idDest, message, date_heure) VALUES (?, ?, ?, CURRENT_TIME)";
|
||||
PreparedStatement pStat = null;
|
||||
try {
|
||||
pStat = connexion.prepareStatement(query);
|
||||
|
@ -274,7 +274,7 @@ public class DataBase {
|
|||
prSt = connexion.prepareStatement(preparedQuery);
|
||||
ResultSet rs = prSt.executeQuery();
|
||||
while (rs.next()) {
|
||||
MessageAffichage msg = new MessageAffichage(rs.getString(4), rs.getInt(2));
|
||||
MessageAffichage msg = new MessageAffichage(rs.getString(4), rs.getInt(2), rs.getInt(3));
|
||||
result.add(msg);
|
||||
}
|
||||
rs.close();
|
||||
|
@ -284,4 +284,41 @@ public class DataBase {
|
|||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public Date getDateFromMessage(int id1, int id2, String message) {
|
||||
Date date = null;
|
||||
int idSrc = id1;
|
||||
int idDest = id2;
|
||||
if(id1>id2) {
|
||||
idSrc = id2;
|
||||
idDest = id1;
|
||||
}
|
||||
String nameTable = idSrc+"_"+idDest;
|
||||
String query = "SELECT * FROM "+nameTable+" WHERE message=?";
|
||||
PreparedStatement pStat = null;
|
||||
try {
|
||||
pStat = connexion.prepareStatement(query);
|
||||
pStat.setString(1, message);
|
||||
ResultSet resPseudo = pStat.executeQuery();
|
||||
if(resPseudo.first()) {
|
||||
date = resPseudo.getDate("date_heure");
|
||||
}
|
||||
}catch(SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return date;
|
||||
}
|
||||
|
||||
public void updateStatus(int id, String status) {
|
||||
String query = "UPDATE `users` SET `statut`=? WHERE id=?";
|
||||
PreparedStatement pStat = null;
|
||||
try {
|
||||
pStat = connexion.prepareStatement(query);
|
||||
pStat.setString(1, status);
|
||||
pStat.setInt(2, id);
|
||||
pStat.executeUpdate();
|
||||
}catch(SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,12 +1,16 @@
|
|||
package controller;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.InetAddress;
|
||||
import java.net.URL;
|
||||
|
||||
import config.ConfLoad;
|
||||
import network.Tools;
|
||||
import test.App;
|
||||
|
||||
public class Test {
|
||||
public static void main(String args[]) throws IOException, InterruptedException {
|
||||
boolean res = DataBase.getInstance().loginExiste("kikou");
|
||||
System.out.println(res);
|
||||
Agent agent = new Agent(Tools.getAdress()[0], App.portSrc, App.portDest);
|
||||
//agent.initServer(ConfLoad.load(), "elise");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,7 +8,10 @@ import java.beans.PropertyChangeEvent;
|
|||
import java.beans.PropertyChangeListener;
|
||||
import java.io.IOException;
|
||||
import java.sql.SQLException;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.*;
|
||||
|
@ -20,8 +23,8 @@ import javax.swing.text.StyledDocument;
|
|||
import controller.Agent;
|
||||
import model.Contact;
|
||||
import model.MessageAffichage;
|
||||
import model.MessageChat;
|
||||
import network.TCPChat;
|
||||
import server.Request;
|
||||
|
||||
import java.awt.*;
|
||||
|
||||
|
@ -37,14 +40,16 @@ public class FenetreChat extends JFrame {
|
|||
static JTextArea ta;
|
||||
|
||||
static StyledDocument doc;
|
||||
private static boolean ouvert=false;
|
||||
|
||||
|
||||
public FenetreChat(Agent agent, String userString) {
|
||||
public FenetreChat(Agent agent, String userString) throws IOException {
|
||||
FenetreChat.ouvert=true;
|
||||
this.frame = new JFrame("Fenetre Chat avec "+ userString);
|
||||
this.agent = agent;
|
||||
this.user = agent.getUser();
|
||||
this.dest = agent.getList().findContact(userString);
|
||||
|
||||
//this.dest = agent.getList().findContact(userString);
|
||||
this.dest = Request.getUser(userString, "getUser");
|
||||
this.frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
|
||||
|
||||
this.frame.setSize(new Dimension(400, 400));
|
||||
|
@ -112,6 +117,7 @@ public class FenetreChat extends JFrame {
|
|||
JButton envoyer = new JButton("Send");
|
||||
frame.getRootPane().setDefaultButton(envoyer);
|
||||
envoyer.addActionListener(new ActionListener() {
|
||||
private Date date;
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
String message = text.getText();
|
||||
//System.out.println("Message :"+ message);
|
||||
|
@ -127,12 +133,13 @@ public class FenetreChat extends JFrame {
|
|||
tcpChat = tcp;
|
||||
}
|
||||
}
|
||||
//text.append(message);
|
||||
|
||||
text.setText("");
|
||||
//ta.append(agent.getUser().getPseudo()+ " : "+message+"\n");
|
||||
//ta.setText("");
|
||||
this.setDate(new Date());
|
||||
DateFormat format = new SimpleDateFormat(" (yyyy/MM/dd HH:mm:ss)");
|
||||
String dateString = format.format(this.date);
|
||||
tcpChat.sendMsg(message);
|
||||
doc.insertString(doc.getLength(), "\n"+message, right );
|
||||
doc.insertString(doc.getLength(), "\n"+message+dateString, right );
|
||||
doc.setParagraphAttributes(doc.getLength(), 1, right, false);
|
||||
if(agent.getDb().tableChatExists(idUser, idDest)) {
|
||||
agent.getDb().addMessage(idUser, idDest, message);
|
||||
|
@ -144,8 +151,12 @@ public class FenetreChat extends JFrame {
|
|||
System.out.println("Envoi du message impossible");
|
||||
e1.printStackTrace();
|
||||
}
|
||||
}
|
||||
public void setDate(Date d) {
|
||||
this.date=d;
|
||||
}
|
||||
|
||||
}});
|
||||
});
|
||||
|
||||
panel.add(BorderLayout.CENTER, sp);
|
||||
panel.add(BorderLayout.SOUTH,envoyer);
|
||||
|
@ -217,7 +228,9 @@ public class FenetreChat extends JFrame {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
public static boolean isOuvert() {
|
||||
return ouvert;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ import java.io.IOException;
|
|||
|
||||
import controller.*;
|
||||
import network.Tools;
|
||||
import server.Request;
|
||||
import test.App;
|
||||
|
||||
public class FenetreConnexion implements ActionListener {
|
||||
|
@ -29,6 +30,7 @@ public class FenetreConnexion implements ActionListener {
|
|||
JTextField pseudofield;
|
||||
JLabel Text;
|
||||
JButton Connexion;
|
||||
JButton Cancel;
|
||||
|
||||
/*
|
||||
* Constructeur d'une fenetre d'affichage pour la connexion d'un utilisateur.
|
||||
|
@ -42,7 +44,7 @@ public class FenetreConnexion implements ActionListener {
|
|||
// fixer les dimensions de la fenetre
|
||||
frame.setSize(new Dimension(120, 40));
|
||||
//Creer le JPanel
|
||||
panel = new JPanel(new GridLayout(3,1));
|
||||
panel = new JPanel(new GridLayout(4,1));
|
||||
//Ajouter les elements
|
||||
this.addWidgets();
|
||||
//Set the default button.
|
||||
|
@ -63,51 +65,71 @@ public class FenetreConnexion implements ActionListener {
|
|||
this.Text = new JLabel("Type your login", SwingConstants.CENTER);
|
||||
//Ajout d'un bouton Connexion
|
||||
this.Connexion = new JButton("Connexion");
|
||||
this.Cancel = new JButton("Cancel");
|
||||
this.Connexion.addActionListener(this);
|
||||
this.Cancel.addActionListener(this);
|
||||
//On associe au bouton Connexion des actions a realiser
|
||||
this.Connexion.addActionListener(this);
|
||||
// On ajouter les differents elements au panel
|
||||
panel.add(pseudofield);
|
||||
panel.add(Text);
|
||||
panel.add(Connexion);
|
||||
panel.add(Cancel);
|
||||
//ajouter un effet de bord transparent au composant Jlabel
|
||||
Text.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
|
||||
}
|
||||
|
||||
public void actionPerformed(ActionEvent event) {
|
||||
// on recupere le texte entree dans la zone de saisie
|
||||
String login = pseudofield.getText();
|
||||
if(!DataBase.getInstance().loginExiste(login)) {
|
||||
JOptionPane.showMessageDialog(frame, "This login doesn't exist") ;
|
||||
}else {
|
||||
// On crée un objet de type ChatApp
|
||||
Agent agent;
|
||||
boolean connexion;
|
||||
Object source = event.getSource();
|
||||
if(source == Connexion){
|
||||
// on recupere le texte entree dans la zone de saisie
|
||||
String login = pseudofield.getText();
|
||||
|
||||
try {
|
||||
agent = new Agent(Tools.getAdress()[0], App.portSrc, App.portDest, login);
|
||||
String pseudo = agent.getDb().getPseudoFromLogin(login);
|
||||
// on tente une connexion avec ce pseudo
|
||||
connexion = agent.connectConnexion(pseudo, login);
|
||||
// Dans les deux cas de figures (reussite ou echec) on affiche un pop-up pour expliquer la situation
|
||||
if(connexion) {
|
||||
// La connexion a reussi
|
||||
JOptionPane.showMessageDialog(frame, "Bonjour " + pseudo) ;
|
||||
frame.dispose();
|
||||
// on lance une nouvelle fenetre de type View_Menu
|
||||
FenetreMenu fenetreCourante= new FenetreMenu(agent);
|
||||
}
|
||||
else {
|
||||
// La connexion a echoue, il est possible de rentrer un nouveau pseudo
|
||||
JOptionPane.showMessageDialog(frame, "Echec de Connexion , ce pseudo est deja pris !");
|
||||
}
|
||||
} catch (IOException e) {
|
||||
System.out.println("Création thread impossible");
|
||||
e.printStackTrace();
|
||||
} catch (InterruptedException e) {
|
||||
System.out.println("connect impossible");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
boolean loginExiste = false;
|
||||
try {
|
||||
loginExiste = Request.sendLogin(login, "loginExiste");
|
||||
} catch (IOException e1) {
|
||||
System.out.println("Pb envoi requete au serveur");
|
||||
e1.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
if(!loginExiste) {
|
||||
JOptionPane.showMessageDialog(frame, "This login doesn't exist") ;
|
||||
}else {
|
||||
// On crée un objet de type ChatApp
|
||||
Agent agent;
|
||||
boolean connexion;
|
||||
|
||||
try {
|
||||
agent = new Agent(Tools.getAdress()[0], App.portSrc, App.portDest, login);
|
||||
String pseudo = agent.getDb().getPseudoFromLogin(login);
|
||||
// on tente une connexion avec ce pseudo
|
||||
connexion = agent.connectConnexion(pseudo, login);
|
||||
// Dans les deux cas de figures (reussite ou echec) on affiche un pop-up pour expliquer la situation
|
||||
if(connexion) {
|
||||
// La connexion a reussi
|
||||
JOptionPane.showMessageDialog(frame, "Bonjour " + pseudo) ;
|
||||
frame.dispose();
|
||||
// on lance une nouvelle fenetre de type View_Menu
|
||||
FenetreMenu fenetreCourante= new FenetreMenu(agent);
|
||||
}
|
||||
else {
|
||||
// La connexion a echoue, il est possible de rentrer un nouveau pseudo
|
||||
JOptionPane.showMessageDialog(frame, "Echec de Connexion , ce pseudo est deja pris !");
|
||||
}
|
||||
} catch (IOException e) {
|
||||
System.out.println("Création thread impossible");
|
||||
e.printStackTrace();
|
||||
} catch (InterruptedException e) {
|
||||
System.out.println("connect impossible");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}else if(source == Cancel) {
|
||||
frame.dispose();
|
||||
new FenetreInscription();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ public class FenetreInscription implements ActionListener {
|
|||
// fixer les dimensions de la fenetre
|
||||
frame.setSize(new Dimension(40, 100));
|
||||
//Creer le JPanel
|
||||
panel = new JPanel(new GridLayout(5,0));
|
||||
panel = new JPanel(new GridLayout(7,1));
|
||||
//Ajouter les elements
|
||||
this.addWidgets();
|
||||
//Set the default button.
|
||||
|
@ -68,7 +68,9 @@ public class FenetreInscription implements ActionListener {
|
|||
this.loginfield = new JTextField(2);
|
||||
this.pseudofield = new JTextField(2);
|
||||
// creation d'un label qui contiendra un txt au centre
|
||||
this.Text = new JLabel("Type your login and your pseudo", SwingConstants.CENTER);
|
||||
this.Text = new JLabel("Forbidden characters: space, '?','&', '/', '=' ", SwingConstants.CENTER);
|
||||
JLabel text = new JLabel("Login: ", SwingConstants.CENTER);
|
||||
JLabel text2 = new JLabel("Pseudo: ", SwingConstants.CENTER);
|
||||
//Ajout d'un bouton Connexion
|
||||
this.inscription = new JButton("Sign Up");
|
||||
this.connexion = new JButton("Sign In");
|
||||
|
@ -76,7 +78,9 @@ public class FenetreInscription implements ActionListener {
|
|||
this.inscription.addActionListener(this);
|
||||
this.connexion.addActionListener(this);
|
||||
// On ajouter les differents elements au panel
|
||||
panel.add(text);
|
||||
panel.add(loginfield);
|
||||
panel.add(text2);
|
||||
panel.add(pseudofield);
|
||||
panel.add(Text);
|
||||
panel.add(inscription);
|
||||
|
|
|
@ -5,6 +5,7 @@ import java.awt.Color;
|
|||
import java.awt.Dimension;
|
||||
import java.awt.Font;
|
||||
import java.awt.GridLayout;
|
||||
import java.awt.HeadlessException;
|
||||
import java.awt.SystemColor;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
@ -31,6 +32,7 @@ import javax.swing.SwingConstants;
|
|||
|
||||
import controller.Agent;
|
||||
import model.Contact;
|
||||
import server.Request;
|
||||
|
||||
public class FenetreMenu {
|
||||
JFrame frame;
|
||||
|
@ -40,9 +42,13 @@ public class FenetreMenu {
|
|||
JLabel jlabel;
|
||||
JLabel texte;
|
||||
JLabel liste;
|
||||
static JComboBox cb;
|
||||
WindowAdapter wa ;
|
||||
|
||||
public FenetreMenu(Agent agent) {
|
||||
public static boolean ouvert = false;
|
||||
|
||||
public FenetreMenu(Agent agent) throws IOException {
|
||||
FenetreMenu.ouvert=true;
|
||||
this.agent = agent;
|
||||
frame = new JFrame("Fenêtre menu");
|
||||
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
|
||||
|
@ -87,8 +93,8 @@ public class FenetreMenu {
|
|||
JOptionPane.YES_NO_OPTION);
|
||||
}
|
||||
|
||||
private void addWidgets() {
|
||||
jlabel = new JLabel(new ImageIcon("/Users/momof/eclipse-workspace/chat/src/images/panda.png"), JLabel.CENTER);
|
||||
private void addWidgets() throws IOException {
|
||||
jlabel = new JLabel(new ImageIcon("panda.png"), JLabel.CENTER);
|
||||
texte = new JLabel("Bienvenue sur ce magnifique chat " + agent.getUser().getPseudo());
|
||||
texte.setFont(new Font("Century Schoolbook", Font.PLAIN, 40));
|
||||
texte.setHorizontalAlignment(SwingConstants.CENTER);
|
||||
|
@ -121,13 +127,14 @@ public class FenetreMenu {
|
|||
ta.insert("Active users\n",0);
|
||||
JScrollPane scrollPane = new JScrollPane(ta);
|
||||
|
||||
String users = agent.getList().actifUsers();
|
||||
String users = Request.actifs("actifs");
|
||||
//String users = agent.getList().actifUsers();
|
||||
Vector<String> v = new Vector<String>();
|
||||
for(String pseudo : users.split("\n")) {
|
||||
v.add(pseudo);
|
||||
}
|
||||
|
||||
JComboBox cb = new JComboBox(v);
|
||||
cb = new JComboBox(v);
|
||||
cb.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent event) {
|
||||
Object selected = cb.getSelectedItem();
|
||||
|
@ -138,14 +145,19 @@ public class FenetreMenu {
|
|||
System.out.println("Creation tcp chat impossible");
|
||||
e.printStackTrace();
|
||||
}
|
||||
new FenetreChat(agent, selected.toString());
|
||||
try {
|
||||
new FenetreChat(agent, selected.toString());
|
||||
} catch (IOException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
/*actions pour refresh*/
|
||||
refresh.addActionListener(new ActionListener() {
|
||||
/* refresh.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
String users = agent.getList().actifUsers();
|
||||
for(String pseudo : users.split("\n")) {
|
||||
|
@ -167,7 +179,7 @@ public class FenetreMenu {
|
|||
new FenetreChat(agent, selected.toString());
|
||||
}
|
||||
});
|
||||
}});
|
||||
}});*/
|
||||
|
||||
frame.getContentPane().add(refresh, BorderLayout.NORTH);
|
||||
panel.add(BorderLayout.CENTER, jlabel);
|
||||
|
@ -186,20 +198,30 @@ public class FenetreMenu {
|
|||
cancel.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
frame.dispose();
|
||||
new FenetreMenu(agent);
|
||||
try {
|
||||
new FenetreMenu(agent);
|
||||
} catch (IOException e1) {
|
||||
// TODO Auto-generated catch block
|
||||
e1.printStackTrace();
|
||||
}
|
||||
}});
|
||||
JButton ok = new JButton("Continue");
|
||||
frame.getRootPane().setDefaultButton(ok);
|
||||
ok.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
String newPseudo = field.getText();
|
||||
if(agent.changerPseudo(newPseudo)) {
|
||||
JOptionPane.showMessageDialog(frame, "Your new pseudo is "+newPseudo);
|
||||
frame.dispose();
|
||||
new FenetreMenu(agent);
|
||||
}else {
|
||||
JOptionPane.showMessageDialog(frame, "Pseudo already, use choose another one");
|
||||
};
|
||||
try {
|
||||
if(agent.changerPseudo(newPseudo)) {
|
||||
JOptionPane.showMessageDialog(frame, "Your new pseudo is "+newPseudo);
|
||||
frame.dispose();
|
||||
new FenetreMenu(agent);
|
||||
}else {
|
||||
JOptionPane.showMessageDialog(frame, "Pseudo already, use choose another one");
|
||||
}
|
||||
} catch (HeadlessException | IOException e1) {
|
||||
// TODO Auto-generated catch block
|
||||
e1.printStackTrace();
|
||||
};
|
||||
}
|
||||
});
|
||||
JPanel panel1 = new JPanel(new GridLayout(4,1));
|
||||
|
@ -229,6 +251,10 @@ public class FenetreMenu {
|
|||
|
||||
|
||||
}
|
||||
|
||||
public static JComboBox getCb() {
|
||||
return cb;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -57,6 +57,16 @@ public class ListeContacts {
|
|||
}
|
||||
}
|
||||
|
||||
public void modifierListe(String ancien, String nouveau) {
|
||||
for(Contact c : this.listeContact) {
|
||||
if(c.getPseudo().equals(ancien)) {
|
||||
this.listeContact.remove(c);
|
||||
c.setPseudo(nouveau);
|
||||
this.addContact(c);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public int length() {
|
||||
int n = 0;
|
||||
while(!listeContact.isEmpty()) {
|
||||
|
|
|
@ -1,17 +1,40 @@
|
|||
package model;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
import controller.DataBase;
|
||||
|
||||
public class MessageAffichage {
|
||||
|
||||
private String message;
|
||||
private int idSrc;
|
||||
private int idDest;
|
||||
private Date date;
|
||||
|
||||
public MessageAffichage(String message, int idSrc) {
|
||||
public MessageAffichage(String message, int idSrc, int idDest) {
|
||||
this.idDest=idDest;
|
||||
this.message = message;
|
||||
this.idSrc = idSrc;
|
||||
this.setDate(DataBase.getInstance().getDateFromMessage(this.idSrc, this.idDest, this.message));
|
||||
}
|
||||
|
||||
public String dateToString() {
|
||||
DateFormat format = new SimpleDateFormat("(yyyy/MM/dd HH:mm:ss)");
|
||||
return format.format(this.getDate());
|
||||
}
|
||||
|
||||
public Date getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
public void setDate(Date d) {
|
||||
this.date = d;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
return message+dateToString();
|
||||
}
|
||||
|
||||
public void setMessage(String message) {
|
||||
|
|
|
@ -1,16 +1,34 @@
|
|||
package model;
|
||||
|
||||
import java.net.InetAddress;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
public class MessageChat extends Message{
|
||||
|
||||
private String message;
|
||||
private Date date;
|
||||
|
||||
public MessageChat(InetAddress addressSrc, InetAddress addressDest, int portSrc, int portDest, int typeMessage, String message) {
|
||||
super(addressSrc, addressDest, portSrc, portDest, typeMessage);
|
||||
this.setDate(new Date());
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public String dateToString() {
|
||||
DateFormat format = new SimpleDateFormat("(yyyy/MM/dd HH:mm:ss)");
|
||||
return format.format(this.getDate());
|
||||
}
|
||||
|
||||
public Date getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
public void setDate(Date d) {
|
||||
this.date = d;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
|
|
@ -5,10 +5,12 @@ import java.net.InetAddress;
|
|||
public class MessagePseudo extends Message{
|
||||
|
||||
private String pseudo;
|
||||
private int id;
|
||||
|
||||
public MessagePseudo(InetAddress addressSrc, InetAddress addressDest, int portSrc, int portDest, int typeMessage,String pseudo) {
|
||||
public MessagePseudo(InetAddress addressSrc, InetAddress addressDest, int portSrc, int portDest, int typeMessage,String pseudo, int id) {
|
||||
super(addressSrc, addressDest, portSrc, portDest, typeMessage);
|
||||
this.pseudo = pseudo;
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getPseudo() {
|
||||
|
@ -19,5 +21,13 @@ public class MessagePseudo extends Message{
|
|||
this.pseudo = pseudo;
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(int id) {
|
||||
this.id=id;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ import java.io.BufferedReader;
|
|||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.PrintWriter;
|
||||
import java.net.InetAddress;
|
||||
import java.net.Socket;
|
||||
import java.util.ArrayList;
|
||||
|
||||
|
@ -38,7 +39,12 @@ public class TCPChat extends Thread{
|
|||
this.start();
|
||||
}
|
||||
|
||||
|
||||
public TCPChat(InetAddress adr, int port) throws IOException {
|
||||
this.socket = new Socket(adr, port);
|
||||
listeMessagesRecu = new ArrayList<MessageChat>();
|
||||
this.support = new PropertyChangeSupport(this);
|
||||
this.start();
|
||||
}
|
||||
|
||||
public void addPropertyChangeListener(PropertyChangeListener pcl) {
|
||||
this.support.addPropertyChangeListener("Msg TCP Recu", pcl);
|
||||
|
@ -108,5 +114,7 @@ public class TCPChat extends Thread{
|
|||
this.destID = destID;
|
||||
}
|
||||
|
||||
|
||||
public boolean isConnected() {
|
||||
return this.socket != null && socket.isConnected() && !socket.isClosed();
|
||||
}
|
||||
}
|
||||
|
|
183
chatGit/src/server/Request.java
普通文件
183
chatGit/src/server/Request.java
普通文件
|
@ -0,0 +1,183 @@
|
|||
package server;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.InetAddress;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
|
||||
import config.ConfLoad;
|
||||
import config.Configuration;
|
||||
import model.Contact;
|
||||
|
||||
public class Request {
|
||||
|
||||
private static Configuration conf = ConfLoad.load();
|
||||
private static String url = conf.getsConf().getUrl();
|
||||
|
||||
public static boolean sendLogin(String login, String type) throws IOException {
|
||||
|
||||
boolean res;
|
||||
|
||||
URL obj = new URL(url+"?login="+login+"&type="+type);
|
||||
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
|
||||
con.setRequestMethod("GET");
|
||||
|
||||
int responseCode = con.getResponseCode();
|
||||
String sRes = con.getHeaderField("result");
|
||||
System.out.println("GET Response Code :: " + responseCode);
|
||||
|
||||
if (responseCode == HttpURLConnection.HTTP_OK) {
|
||||
System.out.println("GET a réussi");
|
||||
|
||||
} else {
|
||||
System.out.println("GET n'a pas fonctionné");
|
||||
}
|
||||
|
||||
if(sRes.equals("true")) {
|
||||
res = true;
|
||||
}else {
|
||||
res = false;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
public static boolean sendPseudo(String pseudo, String type) throws IOException {
|
||||
boolean res;
|
||||
|
||||
URL obj = new URL(url+"?pseudo="+pseudo+"&type="+type);
|
||||
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
|
||||
con.setRequestMethod("GET");
|
||||
|
||||
int responseCode = con.getResponseCode();
|
||||
String sRes = con.getHeaderField("result");
|
||||
System.out.println("GET Response Code :: " + responseCode);
|
||||
|
||||
if (responseCode == HttpURLConnection.HTTP_OK) {
|
||||
System.out.println("GET a réussi");
|
||||
|
||||
} else {
|
||||
System.out.println("GET n'a pas fonctionné");
|
||||
}
|
||||
|
||||
if(sRes.equals("true")) {
|
||||
res = true;
|
||||
}else {
|
||||
res = false;
|
||||
}
|
||||
return res;
|
||||
|
||||
}
|
||||
|
||||
public static void sendPseudoChange(String pseudoAncien, String pseudo, String type) throws IOException {
|
||||
|
||||
URL obj = new URL(url+"?pseudoVieux="+pseudoAncien+"&pseudo="+pseudo+"&type="+type);
|
||||
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
|
||||
con.setRequestMethod("GET");
|
||||
|
||||
int responseCode = con.getResponseCode();
|
||||
String sRes = con.getHeaderField("result");
|
||||
System.out.println("GET Response Code :: " + responseCode);
|
||||
|
||||
if (responseCode == HttpURLConnection.HTTP_OK) {
|
||||
System.out.println("GET a réussi");
|
||||
|
||||
} else {
|
||||
System.out.println("GET n'a pas fonctionné");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void sendUser(String pseudo, String adr, String port, String type) throws IOException {
|
||||
|
||||
URL obj = new URL(url+"?pseudo="+pseudo+"&adr="+adr+"&port="+port+"&type="+type);
|
||||
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
|
||||
con.setRequestMethod("GET");
|
||||
|
||||
int responseCode = con.getResponseCode();
|
||||
String sRes = con.getHeaderField("result");
|
||||
System.out.println("GET Response Code :: " + responseCode);
|
||||
|
||||
if (responseCode == HttpURLConnection.HTTP_OK) {
|
||||
System.out.println("GET a réussi");
|
||||
|
||||
} else {
|
||||
System.out.println("GET n'a pas fonctionné");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static void sendDeconnexion(String id, String pseudo, String type) throws IOException {
|
||||
|
||||
URL obj = new URL(url+"?id="+id+"&pseudo="+pseudo+"&type="+type);
|
||||
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
|
||||
con.setRequestMethod("GET");
|
||||
|
||||
int responseCode = con.getResponseCode();
|
||||
String sRes = con.getHeaderField("result");
|
||||
System.out.println("GET Response Code :: " + responseCode);
|
||||
|
||||
if (responseCode == HttpURLConnection.HTTP_OK) {
|
||||
System.out.println("GET a réussi");
|
||||
|
||||
} else {
|
||||
System.out.println("GET n'a pas fonctionné");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static Contact getUser(String pseudo, String type) throws IOException {
|
||||
Contact user;
|
||||
|
||||
URL obj = new URL(url+"?pseudo="+pseudo+"&type="+type);
|
||||
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
|
||||
con.setRequestMethod("GET");
|
||||
|
||||
int responseCode = con.getResponseCode();
|
||||
String sAdr = con.getHeaderField("address");
|
||||
String sPort = con.getHeaderField("port");
|
||||
System.out.println("GET Response Code :: " + responseCode);
|
||||
|
||||
if (responseCode == HttpURLConnection.HTTP_OK) {
|
||||
System.out.println("GET a réussi");
|
||||
|
||||
} else {
|
||||
System.out.println("GET n'a pas fonctionné");
|
||||
}
|
||||
|
||||
String adr2= sAdr.substring(1);
|
||||
InetAddress address = InetAddress.getByName(adr2);
|
||||
int port = Integer.parseInt(sPort);
|
||||
user = new Contact(pseudo, address, port);
|
||||
|
||||
return user;
|
||||
|
||||
}
|
||||
|
||||
public static String actifs(String type) throws IOException {
|
||||
String actifs;
|
||||
|
||||
URL obj = new URL(url+"?type="+type);
|
||||
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
|
||||
con.setRequestMethod("GET");
|
||||
|
||||
int responseCode = con.getResponseCode();
|
||||
actifs = con.getHeaderField("actifs");
|
||||
System.out.println("GET Response Code :: " + responseCode);
|
||||
|
||||
if (responseCode == HttpURLConnection.HTTP_OK) {
|
||||
System.out.println("GET a réussi");
|
||||
|
||||
} else {
|
||||
System.out.println("GET n'a pas fonctionné");
|
||||
}
|
||||
|
||||
|
||||
return actifs;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
正在加载…
在新工单中引用