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

Windows Forms Discussion :

communication entre deux applications winforms


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Points : 12
    Points
    12
    Par défaut communication entre deux applications winforms
    Bonjour,

    Je travail sur un projet qui nécessite une communication entre deux applications winforms. Est ce que c'est possible de communiquer en utilisant les api SendMessage et PostMessage (sachant que j'aurais besoin d'échanger des chaine de caractère entre les deux applications)? Ou bien j'utilise les sockets??

    Je suis en attente de vos lumières

  2. #2
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    pour moi je choisie toujours la plus simple méthode et je trouve que les Socket peut être plus simple car tu est en mesure de transmettre des chaines de caractères
    et les méthodes SendMessage/PostMessage c'est d 'API Windows moi j'ai travail avec en langage C et j'ai trouve pas mal de difficulté pour réaliser un interface graphique

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 52
    Points : 41
    Points
    41
    Par défaut
    Pour appuyer la réponse de "azstar", les sockets que j'utilise souvent dans les communications inter-programmes semblent constituer la solution la plus simple à mettre en oeuvre.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Les sockets c'est pas si simple que ça je trouve... ça oblige à faire de la prog très bas niveau, et dès que tu veux transmettre des choses plus compliquées que des chaines de caractères, c'est galère.

    Oriente-toi plutôt vers WCF (ou a la rigueur le remoting si tu es sur une version antérieure à .NET 3).

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Bonsoir à tous,
    Grand merci pour vos réponses
    Je vais changer la logique de travail et essayer les sockets.
    J'ai opté à l'utilisation des api SendMessage/PostMessage, parce qu'il sont déjà utilisés au niveau du projet pour communiquer entre une appli c# et une autre en c++. Mais lorsque j'ai testé leur fonctionnement dans 2 petites applis de tests, ça n'a pas marché (surtout pour la communication avec des chaine de caractère).

    Je vais tester avec les sockets

    @+ et merci une autre fois.

  6. #6
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    essai les deux classes TCPlistner et TCpClient..

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par azstar Voir le message
    essai les deux classes TCPlistner et TCpClient..
    Effectivement ce serait déjà (un peu) plus simple que de manipuler directement les sockets... mais ça reste du bas niveau

  8. #8
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    oui effectivement ;
    mais l'utilisation de socket et très pratique si on parle de côte de temps.
    si on utilise un web service ça peut etre assi lord de mettre en oeuvre
    il stocke ces chaines caractères qlq que part afin d'etre recupere par l'autre machine.d'un point et d'autre j'ai entendu que les wcf code ces informations en 64 ce qui augment la taille d'information en doub e(je suis pas sur de cette information).

  9. #9
    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
    Points : 5 195
    Points
    5 195
    Par défaut
    bonjour

    Sans oublier MSMQ qui est aussi très pratique
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  10. #10
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Bonjour tt le monde,

    Merci pour cette échange furtif

    Je veux juste vous préciser que les deux applications winforms sont installées sur la même machine.
    je vais vous expliquer d'avantage:
    Le projet fonctionne avec 2 applications winforms, 2 application en C++.
    L'application winforms principale, communique avec les 2 applications C++ via les api PostMessage, mais il n'y a pas d'envoi de chaine de caractère, juste il y a échange des entiers entre les 2.

    Ce que je veux faire, c'est d'envoyer des messages de l'application winforms principale à l'autre application winforms. Ces messages peuvent contenir des entiers, comme ils peuvent contenir des chaines. Dans ce cas est ce que les api SendMessage et PostMessage reste valables?? (je vois que c'est la méthode d'échange la plus simple), sinon qu'elle méthode puisse je utiliser pour mettre en place cet échange?

    je vous remercie par avance .

  11. #11
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    Bonjour ;

    si les deux applications sont installe sur la même machine alors pourquoi utilise une technologie comme Socket ou web service . il suffit de stocke l'information qlq part et l'autre application récupère l'information -par exemple un fichier XML-.

    mais si ces deux applications peut être au futur être installer sur des machines différentes alors la vous êtes oblige de les utilise

  12. #12
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    oui, j'ai pensé à cette solution, partager les infos via une ressource(un fichier texte ou xml), mais j'ai voulu garder la même logique d'échange.

    Donc, est ce que je comprends que les api SendMessage et PostMessage ne sont pas valables dans ce cas??

  13. #13
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    Bonjour,

    je sais pas ; mais ce que je sais que j'ai utilise les API Windows en C et j'ai trouve pas mal de difficulté pour coder tt ça. mais en c# je n'est jamais les utilisées.

    et pour web service c'est facile et pour les SOckets c'est encore plus facile .
    je pense que il te suffit un tt petit nbr de lignes pour implémenter ton solution en c#-avec les deux classes TCPListner et TCPClient-.

  14. #14
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Merci bien,
    je vais opter à cette solution alors.

    @+

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

Discussions similaires

  1. Réponses: 17
    Dernier message: 04/09/2010, 19h57
  2. [WPF][WCF] Communication entre deux applications
    Par DotNET74 dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 16/08/2010, 20h54
  3. Réponses: 2
    Dernier message: 16/02/2009, 10h31
  4. Communication entre deux applications
    Par Jeff62000 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 26/11/2007, 19h41
  5. communication entre deux applications
    Par ilhamita dans le forum Langage
    Réponses: 1
    Dernier message: 06/03/2007, 15h28

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