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 :

Communication inter process


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 21
    Par défaut Communication inter process
    Bonjour à tous,

    Je me permets de poster un nouveau message pour obtenir votre avis sur la meilleure technologie à implémenter pour communiquer entre deux processus avec une persistance des données.

    Le but est de passer des paramètres, des fichiers de configurations et autre fichiers de résultats entre deux processus totalement séparés. La première idée était d'implémenter des Socket TCP pour être certain que l'information soit transmise mais c'est beaucoup trop lourd car l'opération doit être effectuée assez souvent (envoi de résultats toutes les 500ms par exemple).

    Le Socket UDP n'est pas non plus une bonne solution car si le process de réception venait à tomber, les informations envoyées sur le socket ne serait pas stockées et seraient donc perdues, chose que je veux éviter. L'idéal serait d'implémenter un système de "pipe" qui garde l'information tant que l'autre n'est pas venue la lire, sous la forme d'un fichier ou autre.

    Quel est votre avis ?

    Merci d'avance,

    thegitch

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    tu peux aussi regarder du coté du partage partage (memory share)
    on trouve des exemples en C# sur le net

  3. #3
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 21
    Par défaut
    J'ai pensé aux channels Ipc mais jusque là, je les utilise principalement pour du remoting. Comment faire pour simplement envoyer des informations comme sur un Socket UDP par exemple ?

  5. #5
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Mais si tu connais déjà le remoting pour pas ne pas simplement faire une classe avec une méthode Send(byte[] data) que tu appèlerai à partir du programme source et que tu recevrai dans l'autre programme ...
    En tout cas on peut appeler "Write" sur un IpcChannel ...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 21
    Par défaut
    Citation Envoyé par smyley Voir le message
    Mais si tu connais déjà le remoting pour pas ne pas simplement faire une classe avec une méthode Send(byte[] data) que tu appèlerai à partir du programme source et que tu recevrai dans l'autre programme ...
    une méthode Send basée sur le remoting ? Si je me souviens bien des tests que j'avais fais, un appel en remoting Ipc sur un serveur qui n'existe plus (donc le processus de réception tombé momentanément) est bloquant, non ? Et puis le remoting demande la définition d'interfaces et ça me semble une solution trop lourde pour l'utilisation que je vais en faire (disons 10 processus différents qui parlent assez régulièrement vers 1 autre qui réceptionne tout)

    Citation Envoyé par smyley Voir le message
    En tout cas on peut appeler "Write" sur un IpcChannel ...
    Ah bon ? En tout cas la doc msdn n'indique rien dans ce sens.
    http://msdn.microsoft.com/fr-fr/libr...rs(VS.80).aspx

    quel paramètres possibles pour Write ?

    Ah! Petite précision : je travaille sous Mono

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 21
    Par défaut
    Est-ce quelque chose d'intégré au framework .Net ?

    Je crois comprendre (voir lien ci-dessous) qu'il faut utiliser un wrapper pour accéder à ce genre de fonctions, vrai ?
    http://addressof.com/blog/archive/2003/05/01/164.aspx

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/08/2009, 11h42
  2. Communication Inter Process C# C++
    Par Moustico dans le forum C++/CLI
    Réponses: 3
    Dernier message: 13/03/2009, 13h49
  3. Inter process communication
    Par swingNJava dans le forum Linux
    Réponses: 8
    Dernier message: 27/09/2008, 22h08
  4. Réponses: 18
    Dernier message: 04/02/2008, 11h20
  5. WMI pour communication inter process
    Par dominoz dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 20/08/2007, 13h53

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