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] laisser une fenetre s'afficher


Sujet :

Concurrence et multi-thread Java

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Août 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 81
    Points : 71
    Points
    71
    Par défaut [Thread] laisser une fenetre s'afficher
    Bonjour, voila mon problème il parait assez comlpliqué

    J'ai un programme en C++ qui formate une chaine JAVA et qui grace a la commande system execute l'application Java.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int ret=system(ma commande Java)
    Le programme Java lance une fenetre avec deux boutons un Edit et un close et un Jtable.
    Quand je clic sur Edit et que j'ai selectionné une ligne de mon JTable je redonne la main au programme en C++
    En effet lors d'un clic sur Edit je fait un System.exit(3) a la fin de mon programme en Java et au niveau de ma callback en C++ je recupere l'information en faisant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(ret=768)
    {
    ... du code
    }

    Le probleme est que je voudrais garder ma fenetre Java afficher donc pour cela il ne faudrait pas que je fasse un System.exit(3), cependant si je ne fais pas System.exit(3) mon code en C++ ne sera jamais quand c'est a lui de jouer


    Pouvez m'aider Merci d'avance

  2. #2
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Ton probleme c'est que tu veux faire communiquer deux programmes, l'exec n'est pas la bonne solution..

    Le mieux c'est d'utiliser une vrai solution de communication:
    - socket
    - CORBA
    - fichier partagé
    ...

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  3. #3
    Membre régulier

    Profil pro
    Inscrit en
    Août 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 81
    Points : 71
    Points
    71
    Par défaut
    petite precision, je comprends pas trop comment les faire communiquer avec tes explications peut tu me donner une petite precision avec CORBA par exemple

    Merci beaucoup

  4. #4
    Membre régulier

    Profil pro
    Inscrit en
    Août 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 81
    Points : 71
    Points
    71
    Par défaut
    Pour info, j'utilise deja Corba au niveau du Java pour communiquer avec le Serveur

    thx

  5. #5
    Membre régulier

    Profil pro
    Inscrit en
    Août 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 81
    Points : 71
    Points
    71
    Par défaut
    Moi je pensais qu'avec le systeme de thread on pouvait s'en sortir
    Qu'en pensez vous

  6. #6
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Les threads sont internes a une appli et ne peuvent servir a la communication.. que ce soit les threads Java ou C/C++

    Exemple de communication avec CORBA:
    Ton appli C++ utilise un NamingService CORBA pour resoudre la reference a ton appli Java (qui est désormais un serveur CORBA).

    Si l'appli Java n'est pas lancé, le NS va la lancer...

    L'appli C++ appelle une methode sur le serveur CORBA (ton appli Java), methode qui lui retourne le resultat.

    CORBA pour C++ : regarde TAO

    Enfin cette solution est super lourde et pas forcément adpatée pour le comportement assez simple que tu essayes d'obtenir..

    Moi j'aurais plutot utilisé des sockets..

    L'appli C++ fait un exec de l'appli Java...
    Ensuite elle se met en listen sur un port..
    L'appli Java fait son traitement, lorsque c'est fait elle ouvre une socket sur le port de l'appli C++ et lui transmet le resultat.
    L'appli c++ peut reprendre son cours et l'appli Java n'est pas obligée d'etre refermée ..

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  7. #7
    Membre régulier

    Profil pro
    Inscrit en
    Août 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 81
    Points : 71
    Points
    71
    Par défaut
    ok je connaissais pas ce procede je vais essayer de voir , je reposterai peut etre des questions dessus dans le forum

    Merci beacoup

  8. #8
    Membre régulier

    Profil pro
    Inscrit en
    Août 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 81
    Points : 71
    Points
    71
    Par défaut
    Peux tu m'aider et me donner un bout de code de ce qu'il faut faire en C++ et en Java. J'ai trouver pas mal de doc en ce qui concerne les sockets en C++ mais je vois pas comment le faire en interconnectant avec du Java.

    Merci d'avance de ton aide

  9. #9
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Sur des sockets tu fais transiter ce que tu veux, le mieux c'est de definir un protocole ASCII pour ton usage.

    Pour la partie C++ je pense que tu trouveras plus d'aide sur le forum C/C++

    Pour la partie Java, d'apres ce que j'ai compris il s'agira d'un client..

    Voici un bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Socket sock = new Socket("localhost", 12345);
    InputStream is = sock.getInputStream();
    String reponse = "REP=1080\n";
    is.write(reponse.getBytes());
    is.flush();
    sock.close();
    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  10. #10
    Membre régulier

    Profil pro
    Inscrit en
    Août 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 81
    Points : 71
    Points
    71
    Par défaut
    Merci jve essayer maintenant avec tout ca

  11. #11
    Membre régulier

    Profil pro
    Inscrit en
    Août 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 81
    Points : 71
    Points
    71
    Par défaut
    j'ai chercher t'as raison j'ai mis le Java en client et le C++ en server et la je fais faire des tests.
    Merci encore pour ta precieuse aide

  12. #12
    Nouveau membre du Club
    Inscrit en
    Janvier 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 30
    Points : 25
    Points
    25
    Par défaut
    Salut peut etre voir du coté de JNI , pas trop dur à mettre en place
    a+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. affichage d'une fenetre qui affiche un lien
    Par dida.ratsimba dans le forum W4 Express
    Réponses: 4
    Dernier message: 07/04/2009, 08h42
  2. Réponses: 0
    Dernier message: 28/06/2008, 22h29
  3. [FLASH MX2004] Afficher une fenetre Alert
    Par nono2710 dans le forum Flash
    Réponses: 6
    Dernier message: 07/02/2007, 11h16
  4. Afficher une fenetre a un endroit préci de l'ecran
    Par leo5593 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 09/08/2005, 14h58
  5. Afficher une fenetre par rapport a une autre
    Par luffy0013 dans le forum MFC
    Réponses: 4
    Dernier message: 14/02/2005, 21h16

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