Communication inter processus dll

Soyez le premier à donner votre avis sur cette source.

Vue 5 528 fois - Téléchargée 422 fois

Description

Bonjour ça fait longtemps que je n'ai pas posté de sources ;) mais celle-là ça fait longtemps que je la cherchais et je viens de trouver ce que je voulais ici: http://cid-5f1708eb705d1c65.office.live.com/self.aspx/Public/InterprocessCommunication.zip?sa=775782031 , alors j'ai décidé de créer une dll avec ça pour que ce soit plus propre et pour la partager avec vous ;).

Alors cette dll permet d'établir une communication, appelée IPC (InterProcessCommunication) entre 2 applications, une application Serveur qui reçoit les messages et une application Cliente qui les envoie, simple non ?

Il suffit juste d'ajouter une référence à cette dll depuis les 2 applications (voir source pour l'instanciation). Pour l'application Serveur il y a un évènenement ReceiveMessage, à vous de l'utiliser comme il vous plaît.

Voilà, j'ai essayé de commenter au mieux ma source, mais je suis pas très doué pour ça. Enfin bref, je pense que cette source est accessible aux plus débutants en VB.

Source / Exemple :


'Instancier l'application serveur
InterProcessClass.Server.CreateInstance("IPCName", "IPCUri")

'Instancier l'application cliente
Avant: InterProcessClass.Client.CreateInstance()
Après: Plus besoin d'instancier, on utilise directement le méthode SendMessage
Client.SendMessage("message à envoyer", "IPCName", "IPCUri")

'Récupérer l'instance du serveur
InterProcessClass.Server.getInstance()

'Et voilà, pour le code de la librairie voir le zip

Conclusion :


Bonne prog ;)
N'hésitez à commenter et à donner des idées

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
467
Date d'inscription
lundi 24 juin 2002
Statut
Membre
Dernière intervention
9 mars 2011

MSDN : NamedPipe
http://msdn.microsoft.com/en-us/library/system.servicemodel.netnamedpipebinding.aspx

Google :
http://www.google.fr/search?q=WCF+namedpipe&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:fr:official&client=firefox-a
2ième réponse :
http://omegacoder.com/?p=101 <=== le titre ...Create a Intra-Application Named Pipe using WCF in .Net using C#; IPC Communications.
ca me semble ... interessant comme titre
3ième reponse sur un blog developpez
http://blog.developpez.com/phenixdotnet/p8549/net/wcf-net-named-pipe-et-uac-ce-quarsquo-il/

depuis chez moi google répond pas trop mal je trouve
Messages postés
26
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
27 juin 2011
1
"euuu quand tu créé un projet WCF dans Visual Studio, il te créé un "sample" qui marche sans que t'ai a écrire 1 seule ligne de code"

J'utilise la version Express (hé oui je ne suis pas étudiant et je ne veux pas mettre 800 euros dans VS), pour l'instant cette version me suffit je n'ai donc pas accès aux "WCF". Enfin bref, du coup j'ai cherché dans System.ServiceModel; System.ServiceModel.Channels, il y a une classe nommée NamedPipe... mais je n'arrive pas à l'utiliser, on ne peut pas l'instancier, il me manque, je suppose une classe partagée "ChannelListener" ou autre chose qui me permettra de créer ce canal mais je ne trouve pas :(

Cdlt
Messages postés
467
Date d'inscription
lundi 24 juin 2002
Statut
Membre
Dernière intervention
9 mars 2011

"mais dès ce soir je regarde ce que je peux faire, sinon cette source marche, je l'ai testé et je n'ai eu aucun problème, par contre niveau sécurité"
Je ne dis pas que ca marche pas, oui ca marche j'ai fais des test avec y a quelques année, mais quand il est déclarer par microsoft qu'une techno n'est pas complète niveau sécurité (deleguation, impersonnation ...) et qu'elle est déclarer comme obsolète par eux même .... je pense qu'il faut arrêter de chercher la ptite bête
Le remoting DOIT ETRE remplacé

"J'ai fait un petit tour sur Google pour m'aider et d'après ce que je vois il semblerait que ce que tu me proposes serve à établir une connexion entre 2 programmes sur 2 ordinateurs distants"
c'est pour cela que je t'ai dis :
Utilise donc le WCF pour faire ton IPC, en changeant simplement le "type" de Binding pour la connexion, il s'agit de "named pipe"

Le Binding en WCF indique "comment" tu relis les 2 bout, HTTP, TCP .... et NamedPipe
Le NamedPipe est l'équivalent de L'IPC en Remoting donc poste local
sache que le Remoting existe également sous la forme TCP HTTP ....

"Je viens de regarder un peu du côté de ServiceModel, mais je n'arrive pas à l'utiliser"
euuu quand tu créé un projet WCF dans Visual Studio, il te créé un "sample" qui marche sans que t'ai a écrire 1 seule ligne de code qui fait une addition & soustraction via la liaison, le Binding utiliser dans l'exemple est surement réglé sur HTTP, il ne reste plus qu'a ouvrir le fichier de config et comparer dans la doc l'utilisation d'autre Binding
Messages postés
26
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
27 juin 2011
1
Bonsoir TeBeCo,

Je viens de regarder un peu du côté de ServiceModel, mais je n'arrive pas à l'utiliser. J'ai fait un petit tour sur Google pour m'aider et d'après ce que je vois il semblerait que ce que tu me proposes serve à établir une connexion entre 2 programmes sur 2 ordinateurs distants. Peut-être que j'ai mal compris, si tu pouvais m'éclairer un peu...

Cdlt

Ant95
Messages postés
26
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
27 juin 2011
1
Salut

Désolé je n'ai pas eu accès au computer ces derniers jours, là j'ai pas trop le temps de regarder ça
mais dès ce soir je regarde ce que je peux faire, sinon cette source marche, je l'ai testé et je n'ai eu aucun problème, par contre niveau sécurité je ne suis pas sur que ce soit la bonne solution étant donné que c'est un chemin de cette forme "ipc://..../...." surement accessible via Active Directory. Mais c'est une source pour débutant, je n'ai pas recherché la performance et la sécurité, j'ai seulement présenté un moyen de faire cela ;)

Merci pour cette info

Ant95
Afficher les 11 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.