diff --git a/Implementation/src/RunnerTCPEcoute.class b/Implementation/src/RunnerTCPEcoute.class index 97d313e..ca0c3ec 100644 Binary files a/Implementation/src/RunnerTCPEcoute.class and b/Implementation/src/RunnerTCPEcoute.class differ diff --git a/Implementation/src/RunnerTCPEnvoi.class b/Implementation/src/RunnerTCPEnvoi.class index a13a982..81bf499 100644 Binary files a/Implementation/src/RunnerTCPEnvoi.class and b/Implementation/src/RunnerTCPEnvoi.class differ diff --git a/Implementation/src/TCPEchange.class b/Implementation/src/TCPEchange.class index 97276c8..353e4bb 100644 Binary files a/Implementation/src/TCPEchange.class and b/Implementation/src/TCPEchange.class differ diff --git a/Implementation/src/TCPEchange.java b/Implementation/src/TCPEchange.java index 0b4e04e..964d4bb 100644 --- a/Implementation/src/TCPEchange.java +++ b/Implementation/src/TCPEchange.java @@ -63,6 +63,7 @@ public class TCPEchange { System.out.println("Attente Session de clavardage"); Socket link = ss.accept(); exec.submit(new RunnerTCPEcoute(link,app)); + System.out.println("L'ecoute TCP continue apres le premier thread demarre"); //exec.submit(new RunnerTCPEnvoi(link,app,app.getMe())); } } @@ -75,7 +76,7 @@ public class TCPEchange { //ENVOI class RunnerTCPEnvoi implements Runnable { - final Socket link; + private Socket link; private ChatApp app ; private Utilisateur Destinataire; final BufferedReader in; @@ -97,6 +98,7 @@ class RunnerTCPEnvoi implements Runnable { public void run() { System.out.println("Creation d'un thread d'envoi"); String msg; + while(true){ if(!bonjourEnvoye) { MessageHorodate mh = new MessageHorodate(Destinataire,app.getMe(),"Bonjour",2); @@ -114,7 +116,9 @@ class RunnerTCPEnvoi implements Runnable { out.flush(); break; } + out.println(mh); + System.out.println("Envoi d'un mesage"); out.flush(); } } @@ -141,6 +145,7 @@ class RunnerTCPEcoute implements Runnable { @Override public void run() { System.out.println("Creation d'un thread d'ecoute"); + ExecutorService exec = Executors.newFixedThreadPool(1); try { PrintStream output = new PrintStream(link.getOutputStream()); //InputStream is = link.getInputStream(); @@ -154,7 +159,9 @@ class RunnerTCPEcoute implements Runnable { String payload = ""; String msg = ""; while (line != null) { + line = in.readLine(); + if(line.split(":")[0].equals("Destinataire")) { if(msg.equals("")) { dest = line+"\n"; @@ -166,6 +173,7 @@ class RunnerTCPEcoute implements Runnable { if(mh.getType()==1) { Historique h = app.getHist(mh.getSource().getPseudo()); h.addMessage(mh); + app.majHistorique(mh.getSource().getPseudo(), h); } else if(mh.getType()==0) { @@ -180,9 +188,10 @@ class RunnerTCPEcoute implements Runnable { else if(line.split(":")[0].equals("Type")) { if(line.split(":")[1].equals("2")) { System.out.println("Bonjour recu!"); - System.out.println(src.split(":")[1].replaceAll("\n", "")); + //System.out.println(src.split(":")[1].replaceAll("\n", "")); u2=Utilisateur.stringToUtilisateur(src.split(":")[1].replaceAll("\n", "")); - new Thread(new RunnerTCPEnvoi(link,app,u2,true)); + exec.submit(new RunnerTCPEnvoi(link,app,u2,true)); + System.out.println("Thread d'envoi envoye"); } type = line+"\n"; }