Bonjour,
pour mon application client serveur j'ai fait les codes suivants :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketException;
import java.util.StringTokenizer;
import java.util.logging.Level;
import java.util.logging.Logger;
 
public class TCPMultiServer extends Thread {
	static int compt = 0;
	static int port = 1027;
 
	public static void main(String argv[]) throws Exception  {
 
		ServerSocket welcomeSocket = new ServerSocket(port);
		Responder h = new Responder();
		while (true) {
			Socket connectionSocket = welcomeSocket.accept();
			Thread t = new Thread(new MyServer(h, connectionSocket));
			compt++;
			System.out.println("client number : " + compt + " se connecte à l'adresse" +connectionSocket.getInetAddress());
			t.start();
 	}
  }
}
 
class MyServer implements Runnable {
 
	Responder h;
	Socket connectionSocket;
	public MyServer(Responder h, Socket connectionSocket) {
		this.h = h;
		this.connectionSocket = connectionSocket;
	}
@Override
 public void run() {
 
	while (h.responderMethod(connectionSocket)) {
		try {
 
			Thread.sleep(5000);
		}catch (InterruptedException ex) {
			ex.printStackTrace();
		}
 } 
	try {
		connectionSocket.close();
	} catch (IOException ex) {
 
		}
	}
}
 
class Responder {
 
	Socket connectionSocket;
	String serverSentence;
	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
 
	public boolean responderMethod(Socket connectionSocket) {
			try {
			BufferedReader inFromClient =
					new BufferedReader(
							new InputStreamReader(
									connectionSocket.getInputStream()));
			PrintStream outToClient = new PrintStream( connectionSocket.getOutputStream());
 
			String clientSentence = inFromClient.readLine();
 
			if (clientSentence == null || clientSentence.equals("EXIT")) {
				System.out.println("client  :" +connectionSocket.getLocalPort() +" se deconnecte ");
				return false;
				}
			if (clientSentence != null) {
				System.out.println("client : " + clientSentence);
			}
			serverSentence = br.readLine() + "\n";
			outToClient.println("Bonjour Client : "+ serverSentence);
			outToClient.flush();
 
			return true;
 
		} catch (SocketException e) {
			System.out.println("Disconnected");
				return false;
		} catch (Exception e) {
			e.printStackTrace();
				return false;
		}
	}
  }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketException;
import java.util.Scanner;
import java.util.StringTokenizer;
import java.util.logging.Level;
import java.util.logging.Logger;
 
 
 
public class TCPMultiClient {
	 //static int port = 6789;
		public static void main(String argv[]) throws Exception {
			String sentence;
			String modifiedSentence;
			BufferedReader inFromUser =new BufferedReader(new InputStreamReader(System.in));
			Socket clientSocket = new Socket("localhost",1027);
 
			while (true) {
				PrintStream outToServer =
						new PrintStream(
								clientSocket.getOutputStream());
				BufferedReader inFromServer = new BufferedReader(new InputStreamReader(
						clientSocket.getInputStream()));
 
				sentence = inFromUser.readLine();
				outToServer.println(sentence + '\n');
 
				if (sentence.equals("EXIT")) {
					break;
				}
				/* lire des donnes que le serveur a envoyé */
				modifiedSentence = inFromServer.readLine();
				System.out.println("FROM SERVER: " + modifiedSentence);
			}
			clientSocket.close();
		}
	 }
 
/*
public class TCPMultiClient {
 
	   public static void main(String[] args) {
 
	      final Socket clientSocket;
	      final BufferedReader in;
	      final PrintWriter out;
	      final Scanner sc = new Scanner(System.in);//pour lire à partir du clavier
 
	      try {
 
	         clientSocket = new Socket("localhost",1027);
	         //flux pour envoyer
	         out = new PrintWriter(clientSocket.getOutputStream());
	         //flux pour recevoir
	         in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
 
	         Thread envoyer = new Thread(new Runnable() {
	             String msg;
	              @Override
	              public void run() {
	                while(true){
	                	//System.out.println("le nomdre de client de connecte ");
	                	if(msg.equals("EXIT")){
		                  	   System.out.println("Client déconecté");
		                  	   break;
		                     }
	                  msg = sc.nextLine();
	                  out.println(msg);
	                  out.flush();
	                }
	             }
	         });
	         envoyer.start();
 
	        Thread recevoir = new Thread(new Runnable() {
	            String msg;
	            @Override
	            public void run() {
	               try {
	                 msg = in.readLine();
	                 while(msg!=null){
	                	 if(msg.equals("EXIT")){
		                  	   System.out.println("Client déconecté");
		                  	   break;
		                     }
 
	                    System.out.println("Serveur : "+msg);
	                    msg = in.readLine();
	                 }
	               // System.out.println("Serveur déconecté");
	                 out.close();
	                 clientSocket.close();
	               } catch (IOException e) {
	                   e.printStackTrace();
	               }
	            }
	        });
	        recevoir.start();
 
	      } catch (IOException e) {
	           e.printStackTrace();
	      }
	  }
	}
 
 
*/
Question :

mon code permet de gérer plusieurs client, le client peut se déconnecter s'il tape EXIT

Maintenant, je souhaite envoyer des messages au client et compter le nomdre d'utilisateurs connectés, comment faire ?