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

Java Discussion :

Communication entre 2 main


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 18
    Par défaut Communication entre 2 main
    Salut,
    je suis entrain de programmer une application client serveur en utilisant le package rmi
    le problème c'est que j'utilise une interface graphique et j'ai pas pu transférer une variable ou un objet de ma classe client que je lance en ms dos vers ma classe fenêtre.
    par exemple pour savoir si le client est connecté au serveur pour ouvrir une nouvelle fenêtre.
    J'ai essayé avec un fichier de tel façon que la classe client écrit les données à transférer dans un fichier et la classe fenêtre lit ce fichier mais ça fonctionne pas puisque elle ne trouve pas ce fichier je croit que c'est un probleme de temps et non pas du code source.
    Ci quel qu'un peut m'aider avec une autre solution ou même avec cette solution s.v.p
    Merci!

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Je n'ai pas compris le problème.
    quel est le lien entre la "classe client" lancée sous DOS et la "classe fenêtre" ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 18
    Par défaut
    la fenetre execute un fichier batch
    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
    try
    			{
    				//on me try si jamais il y a une exception
    				//BufferedWriter a besoin d un FileWriter, 
    				//les 2 vont ensemble, on donne comme argument le nom du fichier
    				//true signifie qu on ajoute dans le fichier (append), on ne marque pas par dessus 
    				FileWriter fw =new FileWriter("c:\\test.bat", false);
    				fw= new FileWriter("c:\\test.bat", true);
     
    				// le BufferedWriter output auquel on donne comme argument le FileWriter fw cree juste au dessus
    				BufferedWriter output = new BufferedWriter(fw);
     
    				//on marque dans le fichier ou plutot dans le BufferedWriter qui sert comme un tampon(stream)
    				output.write("cd src\njavac DemandeCLient.java\njava DemandeClient 1 -1 "+getTxtNumCarte().getText()+" "
    						+getCode().getText()+" "+fichierInst);
    				//on peut utiliser plusieurs fois methode write
     
    				output.flush();
    				//ensuite flush envoie dans le fichier, ne pas oublier cette methode pour le BufferedWriter
     
    				output.close();
    				//et on le ferme
     
    			}
    			catch(IOException ioe){System.out.println("erreur : " + ioe );}
    			//on "catch" l exception ici si il y en a une, et on l affiche sur la console 
     
     
     
    			String cmd="cmd /c start /min C:\\test.bat";
    			try { 
    			Runtime r = Runtime.getRuntime(); 
    			Process p =r.exec(cmd);
    			while(p.waitFor()!=0);
    			System.out.println("Succes");
    			}catch(Exception e2) { 
    			System.out.println("erreur d'execution " + cmd + e2.getMessage()); 
    			}
    Ensuite je veut savoir si le client est connecté càd dans ma classe serveur lors de l'invocation de la méthode conecter je retourne un id de connexion sinon -1
    donc dans le main du DemandeClient j'ai un id que je veut aussi le passer à la classe fentre pour savoir si mon client est connecté.

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    J'ai l'impression que ton architecture est extrêmement compliquée
    Que contient le "test.bat" ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 18
    Par défaut
    c'est écrit dans le code source :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    output.write("cd src\njavac DemandeClient.java\njava DemandeClient 1 -1 "+getTxtNumCarte().getText()+" "
    						+getCode().getText()+" "+fichierInst);
    //details pour les arguments de la classe DemandeClient.main :
    //argument0: choix de type de connection:
    //cad connecter,consulter,retirer ou deconnecter
    //argument1: id identificateur
    //si le client n'est pas encore connecté on envoie -1
    //sinn on envoie son id obtenue lors de sa connection
    //Si client va se connecter
    //argument2: numCarte
    //argument3: code
    //argument4: le nom du fichier ou on va mémoriser son id
    //et de savoir aussi à partir de la fenetre si le client est
    //connecté ou nn.
    //Et si il va retirer de l'argent
    //argument2: montant à retirer

  6. #6
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Tu as vraiment besoin de recompiler à chaque fois ?
    Pourquoi passes-tu par un programme externe ?
    Que fait DemandeClient par rapport au serveur ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

Discussions similaires

  1. communication entre un std::thread et le main
    Par robinsondesbois dans le forum Threads & Processus
    Réponses: 5
    Dernier message: 17/04/2014, 16h44
  2. Communication entre EDT et le thread main
    Par riadhhwajdii dans le forum EDT/SwingWorker
    Réponses: 1
    Dernier message: 19/10/2010, 10h56
  3. Communication entre processus
    Par markopolo dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/06/2003, 16h21
  4. Réponses: 5
    Dernier message: 25/03/2003, 19h43
  5. communication entre programmes
    Par jérôme dans le forum C
    Réponses: 12
    Dernier message: 16/04/2002, 08h05

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