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

Langage Java Discussion :

Communicatio JAVA <-> C via file de message


Sujet :

Langage Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Communicatio JAVA <-> C via file de message
    Bonjour,

    J'ai plusieurs processus sous LINUX qui s'échangent des données via des files de messages. Le tout programmé en language C.

    Je souhaite remplacer un des processus par un prcocessus écrit en JAVA.

    Est il possible de lire et ecrire dans les files de message créer par un processus en language C à partir d'un autre en JAVA, sans trop modifier mon programme C?

    ci-dessous une partie du code C:

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
      if ((fileId1 = msgget(BOITEMESSAGE, 0700  |IPC_CREAT))==-1)
     
      { fprintf(stdout, "err: Echec de creation \n");
     
      }
    lu=msgrcv(fileId1, &msgFile, sizeof(int)+sizeof(double)+sizeof(char), 0, IPC_NOWAIT);

    Merci

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Impossible sans passer par du JNI (c'est à dire d'interfacer du code natif en C/C++ avec java): la JVM gère sa mémoire en interne et les zones de mémoire partagées sous *NIX sont trop spécifiques.

    Bref les applis java ne peuvenet accéder à la mémoire gérée par l'OS. (pas plus qu'aux sémaphores, mutex et autres joyeuxeries nixiennes).
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Merci pour la réponse

    Je vais éssayer avec JNI.

    Mais est que l'utilisation des "pipes nommés" serait possibles ? (bien sur en modifiant mes prog. C)

  4. #4
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Eventuellement mais tu perds de la portabilité. (*NIX only)

    Pour java les named pipes seront considérés comme de vulgaires fichiers, donc à toi de faire joujou avec.

    Sinon une solution plus élégante pour la communication inter process serait de passer par un socket (ça java le fait plus que bien, et ouvrir un socket en C sou *NIX ce n'est pas la mort)
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    ok merci pout ton aide.

    Je vais voir ce que je vais utiliser.

    Pour les sockets il n'y a pas de problème je les utilises déja dans mes programmes. L'intérêt des files de message était surtout la gestion des files d'attentes qui me semblait plus simple.

    Merci

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

Discussions similaires

  1. java.io.FileNotFoundException:(no such file or directory)
    Par luffy2mars dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 10/06/2010, 10h11
  2. déploiement JAVA 1.6.07 via GPO
    Par MIKKA dans le forum Général Java
    Réponses: 1
    Dernier message: 17/10/2008, 11h56
  3. Réponses: 1
    Dernier message: 02/10/2007, 16h48
  4. [System.load] Exception java.lang.UnsatisfiedLinkError avec unknown file type
    Par jemini_fr dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 05/02/2007, 13h52
  5. [DEBUTANT][DTD][JAVA]déclaration d'une DTD ("file: ....
    Par The Wretched dans le forum Valider
    Réponses: 2
    Dernier message: 21/06/2005, 08h57

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