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

C Discussion :

Service Windows : comment savoir si un message est arrivé dans une Mailslot ?


Sujet :

C

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 32
    Points : 25
    Points
    25
    Par défaut Service Windows : comment savoir si un message est arrivé dans une Mailslot ?
    Bonjour,

    Je suis en train de convertir des applications Windows qui communiquent entre elles par Mailslot (sur la même machine) en Services Windows.

    En tant qu'application Windows, avec donc une fenêtre, mes applications sont"informées" qu'un message est arrivé par un "trigger" du type "Windows Message" WM_***, ce qui permet sur cet évènement d’appeler la routine de lecture de la Mailslot.

    Problème : en tant que Service Windows, je ne peux plus avoir ce trigger (car plus de fenêtre Windows), et je ne sais donc plus "quand" lire ma Mailslot pour y trouver un message

    Comme il n'y a pas de réelle périodicité dans les messages échangés, j'ai fabriqué une routine qui va périodiquement (toutes les 10 ms) appeler GetMailslotInfo() pour savoir s'il y a un message. Si oui, la routine va ensuite appeler ReadFile() afin de traiter le message, sinon, elle ne fait rien si ce n'est attendre son prochain appel 10 ms après.

    MAIS : cette méthode de vérification périodique ne me plait guère, et j'aimerai savoir s'il existe des triggers, pourquoi pas du type SM_*** (pour Service Message), qui pourrait être utilisés afin d'de savoir quand vérifier ma Mailslot c'est à dire uniquement lorsqu'il y a un message, et non périodiquement.

    Bien entendu, j'ai cherché sur MSDN et le Net, mais sans rien trouver...

    Je vous remercie d'avoir lu ce message et du temps que vous pourriez consacrer à y répondre.

    Cordialement,
    T

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Peut être que WaitForSingleEvent() fonctionne sur le handle d'un MailSlot

    Mai j'ai un doute en lisant la doc :
    Citation Envoyé par MSDN
    The WaitForSingleObjectEx function can wait for the following objects:

    • Change notification
    • Console input
    • Event
    • Memory resource notification
    • Mutex
    • Process
    • Semaphore
    • Thread
    • Waitable timer
    A tester !!
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 32
    Points : 25
    Points
    25
    Par défaut
    Merci ram-0000 pour ta réponse.

    Comme toi, j'ai un doute, car je ne suis pas certain que le handle de la Mailslot soit "supporté. Pour bien faire, il faudrait peut être créer un event associé à l'écriture dans la Mailslot, event qui serait alors le "trigger" associé à WaitForSingleObject, et par voie de conséquence à l'action de lecture de la mailslot. Faudrait tester... mais un truc direct lié à la Mailslot serait tout de même "mieux"...

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/05/2015, 10h33
  2. Réponses: 2
    Dernier message: 19/03/2010, 09h58
  3. [WS 2003] comment savoir si un serveur est intégré dans une AD
    Par sparowme dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 28/08/2009, 09h38
  4. Réponses: 2
    Dernier message: 13/08/2006, 23h56
  5. [Liste] Savoir si un élément est présent dans une liste
    Par Wookai dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 02/05/2005, 20h44

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