IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Concurrence et multi-thread Java Discussion :

Thread et RMI


Sujet :

Concurrence et multi-thread Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2003
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2003
    Messages : 205
    Par défaut Thread et RMI
    Bonjour,

    j'ai une appli qui me permet de communiquer entre un client et un serveur en RMI. Le client invoque les methodes du serveur et le serveur se charge de démmarer/arreter un chrono.

    Mais j'aimerai que plusieurs clients (8 maxi) puissent sur son propre chrono (1chrono par client) c'est a dire démarrer puis arreter puis redémarrer puis rearreter ...

    Je me doute que je dois utiliser des thread mais je nen sais pas quoi "threader" et aussi dois-je utiliser des ports (1 port par client) différent ou alors puis-je faire tt sur le même port?

    j'ai déjà regarder les tuto sur les thread mais ca ne m'avance pas sur le fait de savoir quoi "threader".

    Voici le code si ca peux vous aider

    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
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.DataInputStream;
    import java.rmi.*;
    import java.rmi.server.*;
    import java.rmi.registry.*;
    import javax.swing.Timer;
     
     
    public class ServeurThread extends UnicastRemoteObject implements Service, ActionListener{
    	private Timer timer = new Timer(1000,this);
    	ClasseTime temps = new ClasseTime();
     
    	ServeurThread() throws RemoteException{
    		super();
    	}
     
    	public static void main ( String args[] ) throws Exception{
    		ServeurThread svr = new ServeurThread();
    		DataInputStream saisie = new DataInputStream(System.in);
    		int port;
    		if (args.length != 1)
            {
            	System.out.println(" Spécifier le port " );
            	System.exit(1);
            }
         	else
         	{
         		port = Integer.parseInt(args[0]);
         		Registry registry = LocateRegistry.createRegistry(port);
         		Naming.bind ("//127.0.0.1:"+port+"/Service", svr);
         		System.out.println (" Attente d'appel ...");
         	}
    	}
     
    	public void actionPerformed(ActionEvent Evt){
    		if (Evt.getSource().equals(timer))
    			modifCpt();
    	}
     
    	public void modifCpt(){
    		temps.modifier("+");
    	}
     
    	public void demarrer() throws RemoteException{
    		timer.start();
    		System.out.println("Demarrer");
    	}
     
    	public void arreter() throws RemoteException{
    		timer.stop();
    		System.out.println("Arreter");
    	}
     
    	public String recupererCpt() throws RemoteException{
    		System.out.println("Recuperation, temps:"+temps.recupererTemps());
    		return temps.recupererTemps();
    	}
    }
    Merci d'avance pour votre aide

    Nixonne

  2. #2
    Membre éclairé Avatar de Wookai
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2004
    Messages : 307
    Par défaut
    A mon avis, il n'y a pas besoin de "threader" tout ça... Il te suffit d'avoir une liste de Timer côté serveur (un par client). Ensuite, lors d'un appel de démarrer, le serveur démarre le timer correspondant dans la liste.

    Maintenant, qu'entends-tu par chrono ? Si tu veux juste compter le temps entre démarrer() et arrêter(), tu peux simplement utiliser des objets Date. Lors du démarrage, tu l'initialise, et lorsque tu arrêtes, tu renvoie la différence entre maintenant et la date précédemment initialisée.

Discussions similaires

  1. RMI et threads
    Par adrian07 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 14/02/2012, 12h40
  2. Réponses: 0
    Dernier message: 22/01/2012, 19h35
  3. [Thread][RMI] acces concurrent
    Par boo64 dans le forum Concurrence et multi-thread
    Réponses: 1
    Dernier message: 16/03/2011, 11h53
  4. RMI & threading ou autre moyen de comm ?
    Par bgenz dans le forum Concurrence et multi-thread
    Réponses: 6
    Dernier message: 03/03/2008, 13h03
  5. Threads avec RMI Client/Serveur
    Par vivitboss dans le forum Concurrence et multi-thread
    Réponses: 1
    Dernier message: 26/09/2007, 03h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo