TD2: Fix the remaining bugs in the IHM chat client.
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Fri, 16 Mar 2018 14:17:18 +0000 (15:17 +0100)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Fri, 16 Mar 2018 14:17:18 +0000 (15:17 +0100)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
TD2/IHM/IHM.java
TD2/client/ThreadClientoSend.java
TD2/server/BroadcastThreadService.java
TD2/server/BroadcastoThreadService.java
TD2/server/Main.java

index 08cbf2c8aba88b01c349fa57a2c31c5dfc3c9f55..a10c23dc1ae764d0f0dc981a12773c3f0d77c900 100644 (file)
@@ -12,6 +12,7 @@ import javax.swing.JTextArea;
 import javax.swing.JTextField;
 import javax.swing.ScrollPaneConstants;
 
+import java.util.Random;
 
 /**
  * Applications réparties
@@ -28,13 +29,32 @@ public class IHM implements ActionListener {
     private JTextArea entrants;
     private JTextField sortants;
     private ArrayList<String> sendMessages;
+    //FIXME: use a random name by thread for now, should be setable
+    private String randName;
 
     IHM() {
         sendMessages = new ArrayList<String>();
+        randName = randomName();
+    }
+
+    private String randomName() {
+
+        int leftLimit = 97; // letter 'a'
+        int rightLimit = 122; // letter 'z'
+        int targetStringLength = 8;
+        Random random = new Random();
+        StringBuilder buffer = new StringBuilder(targetStringLength);
+        for (int i = 0; i < targetStringLength; i++) {
+            int randomLimitedInt = leftLimit + (int)(random.nextFloat() * (rightLimit - leftLimit + 1));
+            buffer.append((char)randomLimitedInt);
+        }
+        String generatedString = buffer.toString();
+
+        return generatedString;
     }
 
     public void go() {
-        JFrame cadre = new JFrame("Client de discussion");
+        JFrame cadre = new JFrame("Client de discussion de " + randName);
         JPanel panneau = new JPanel();
         entrants = new JTextArea(15, 30);
         entrants.setLineWrap(true);
@@ -75,7 +95,7 @@ public class IHM implements ActionListener {
         }
         String mess = (String)sendMessages.remove(0);
         System.out.println("IHM -> message a envoyer : " + mess);
-        return mess;
+        return randName + "> " + mess;
     }
 
     public void writeMessage(String mess) {
index d6462a7c2a3b540f64bedd136bdd879d8250aa75..52db7d5abdcad564bc3dc80635086d265da27794 100644 (file)
@@ -4,8 +4,7 @@ import java.util.Random;
 
 public class ThreadClientoSend implements Runnable {
     private SocketClient client;
-    //FIXME: use a random name by thread for now
-    //       should be setable
+    //FIXME: use a random name by thread for now, should be setable
     private String randName;
 
     ThreadClientoSend(SocketClient c) {
index 4bb29435b74ebcd62f554aa4399586cd209a513a..9ea5cdd5f90af52d4ee7ba2b23286f2bc61512f4 100644 (file)
@@ -54,7 +54,7 @@ public class BroadcastThreadService implements Runnable {
                                end = true; // le thread de service doit terminer
                                break; // do not broadcast the dot that will close all clients threads
                        }
-                       System.out.println("Broadcasting the message <" + theLine + "> received from " + clientSocket.toString());
+                       System.out.println("Broadcasting the message \"" + theLine + "\" received from " + clientSocket.toString());
                        broadcastMsg(theLine);
                }
                sharedList.remove(OWriter);
index 3431b77e0f5bd7bce763013435f1263d706e8571..fb4737cf7c96e69d946982414ea0b6f179af35a8 100644 (file)
@@ -58,7 +58,7 @@ public class BroadcastoThreadService implements Runnable {
                                end = true; // le thread de service doit terminer
                                break; // do not broadcast the dot that will close all clients threads
                        }
-                       System.out.println("Broadcasting the message <" + roMsg + "> received from " + clientSocket.toString());
+                       System.out.println("Broadcasting the message \"" + roMsg + "\" received from " + clientSocket.toString());
                        broadcastoMsg(roMsg);
                }
                sharedList.remove(OWriter);
index 68ef78e817d11a1a1f3c698e011a8bfe626af630..12aed42f8414855da82c7f64b50eda230b103b12 100644 (file)
@@ -5,7 +5,7 @@ public class Main {
        public static void main(String[] args) {
                ServerSocket listenSocket = null;
                try {
-                       System.out.println("Demarrage du serveur sur le port " + Integer.parseInt(args[0]) + ", mise en attente de connexion :");
+                       System.out.println("Demarrage du serveur sur le port " + Integer.parseInt(args[0]) + " et en attente de connexion :");
                        listenSocket = new ServerSocket(Integer.parseInt(args[0])); // port
                        while (true) { // le dispatcher est le thread qui execute main()
                                Socket clientSocket = listenSocket.accept();