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

Linux Discussion :

IPCS file de message


Sujet :

Linux

  1. #1
    Membre averti
    Avatar de jmjmjm
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2005
    Messages : 760
    Points : 439
    Points
    439
    Par défaut IPCS file de message
    Bonjourje viens de creer ma toute premiere application client serveur utilisant des MSQ, j'ai une petite question en cas de connection de plusieurs clients simultané, est ce que le resultat arrivera toujours au bonne endroit (client emetant l'info) ou faut il qu'avec chaque MSQ envoyé j'envoi un identifiant comme le pid pour que je le compar avec celui du processus a la relecture ??

  2. #2
    Membre régulier Avatar de yashiro
    Inscrit en
    Mars 2004
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 214
    Points : 82
    Points
    82
    Par défaut
    En effet, les messages qui circulent dans les MSQ on un champ "long mtype" qui permet au processus client, lorsqu'il utilise msgrcv avec le 4e paramètre positif, de ne choisir que le message le plus ancien dont le type correspond à cette valeur. On peut donc utiliser dans ce champ le pid du process (qui est unique) pour garantir que seul le processus visé aura le message.

  3. #3
    Membre averti
    Avatar de jmjmjm
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2005
    Messages : 760
    Points : 439
    Points
    439
    Par défaut
    Désolé de resortir se sujet mais je viens d'etre confronter a un probleme, je faisais donc une verification de mon pid avec un boucle while du genre :
    while (PIDProgramme != PIDRenvoyerParServeur) lire PIDRenvoyerPArServeur;

    Mais apparament le faite de lire une info de la MSQ la supprime :-( donc en verifiant un PID je le supprime pour un autre programme !!
    Est ce bien ca ??

    Et si oui comment regler ce probleme ??

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    oui c'est bien cela. les queues de messages sont une sorte de "first in first out ", donc la lecture efface le message. Mais je comprend pas bien , en temps normale on créer 1 file de message par programme, si une information doit être envoyée a plusieur programme, elle est expedier auant de fois qu'il y a de programme.
    Si c'est une infrmation destiné a être recuperer par plusieur programme, il convient souvent de travailler avec de la shared memory et semaphore, la pluseurs applications peuvent lire et "marquer" leurs lectures, l'information reste disponible tant que l'on ne l'efface pas explicitement.

  5. #5
    Membre averti
    Avatar de jmjmjm
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2005
    Messages : 760
    Points : 439
    Points
    439
    Par défaut
    oki merci pour ton message, en fait pour ta compréhension, j'ai un processus Serveur et une multitude de fils et le serveur et ses fils communiquent par les MSQ.

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    sr ton "serveur" qui recoit donc de tout les autres process il te faut donc lire le 1er message de la fille, puis analyser qui est l'expediteur.

    le champ mtype, pourquoi pas, mais il me semble preferable de "formater" tes messages avec une entete.
    entete qui indiquerai des information sur l'expediteur, le type de message (s'il existe plusieur type), un numero de message,peut etre un horodatage, et enfin un "corps" de message comprenant le message a proprement parler qui serait traitable par rapport au numero/type.

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

Discussions similaires

  1. [IPC] File de messages
    Par gandalflemaia dans le forum Linux
    Réponses: 2
    Dernier message: 07/01/2011, 22h03
  2. Réponses: 5
    Dernier message: 17/05/2007, 01h19
  3. [IPC] vider la file de messages
    Par waldoun dans le forum Linux
    Réponses: 4
    Dernier message: 14/05/2007, 19h43
  4. IPC - Files de messages - Structure des messages
    Par Mattius007 dans le forum C
    Réponses: 2
    Dernier message: 03/01/2007, 10h51
  5. IPC : Files de messages et accès exclusif
    Par thomasvst dans le forum C
    Réponses: 2
    Dernier message: 07/12/2005, 09h47

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