Bonjour,
je pense que le titre est explicite mais je vais me repeter un peu : j'ai un serveur creer avec une serversocket qui accepte plusieurs clients maintenant j'aimerai bien envoyer un message simultanement a tout les clients et c'est la que mon probleme se situe ( j'ai deja vu le multicastsocket mais j'aimerai une methode avec des threads pour mieux comprendre (puis j'aimerai bien que ca marche hors lan surtout), sinon j'ai egalement réussis avec une queue de clients dans un vecteur mais la c'est plus simultané)
voila le code de base du serveur :
Code :
- import java.io.*;
- import java.net.*;
- class ServeOneClient extends Thread
- {
- private Socket socket;
- private BufferedReader in;
- private PrintWriter out;
- public ServeOneClient (Socket s) throws IOException {
- socket =s;
- in = new BufferedReader( new InputStreamReader( socket.getInputStream()));
- out =new PrintWriter ( new BufferedWriter( new OutputStreamWriter( socket.getOutputStream())),true);
- start();
-
- }
- public void run()
- {
- try {
- while (true)
- {
- String str = in.readLine();
- if (str.equals("END" )) break;
- System.out.println("Recu :" +str);
-
- out.println("recu" );
-
- }
- //System.out.println("fermeture" );
- } catch(IOException e) {}
- finally {
- try {
- socket.close();
- } catch (IOException e) {}
- }
- }
- }
- public class MultiClientServer
- {
- static final int PORT =2112;
- public static void main ( String[] args) throws IOException
- {
- ServerSocket s = new ServerSocket(PORT);
- System.out.println("Server demarr" );
- try {
- while (true)
- {
- Socket socket = s.accept();
- try{
- new ServeOneClient(socket);
- } catch (IOException e) {
- socket.close();
- }
- }
- } finally {
- s.close();
- }
- }
- }
|
Si vous avez un conseil n'hesité pas ( meme si vous trouvez le code ci dessus un peu crade je suis a tout ouie)
Amicalement Qxn
Message édité par qxn le 15-01-2005 à 21:22:59