REMOTING SIMPLE ET CONCRET AVEC EVENEMENT

langju Messages postés 88 Date d'inscription mardi 6 février 2001 Statut Membre Dernière intervention 27 juillet 2007 - 11 juil. 2007 à 19:17
langju Messages postés 88 Date d'inscription mardi 6 février 2001 Statut Membre Dernière intervention 27 juillet 2007 - 27 juil. 2007 à 17:12
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/43419-remoting-simple-et-concret-avec-evenement

langju Messages postés 88 Date d'inscription mardi 6 février 2001 Statut Membre Dernière intervention 27 juillet 2007
27 juil. 2007 à 17:12
En fait, l'avantage du delegate est que tu peux faire un AddHandler et un RemoveHandler en plein code, c'est à dire tu assignes ou non ton evenement.

Alors qu'avec le withevents, quoi qu'il arrive ton evenement existera (même si jamais utilisé il sera présent en mémoire) via le Handles ( a moins que ton but est d'attacher des evenements à des controles ?)

voilou
dieuzorro Messages postés 21 Date d'inscription jeudi 6 janvier 2005 Statut Membre Dernière intervention 14 janvier 2008
27 juil. 2007 à 16:42
Pourquoi tu trouve sa mieux de faire ta déclaration en delegate plutôt qu'en withEvents.

Perso je préfère en WithEvents car je trouve sa moins perturbant car sa le code est comme un événement des autres objet (exemple: evenement d'un bouton) et on peut voir la liste des événements dans la combo de Visual studio.
langju Messages postés 88 Date d'inscription mardi 6 février 2001 Statut Membre Dernière intervention 27 juillet 2007
27 juil. 2007 à 16:30
DIEUZORRO, concernant tes modifs je pense que c'est mieux de faire une declaration en delegate plutot qu'en WithEvents.

Sinon, oui tu peux m'envoyer je mettrais la source à jour comme çà.

Là j'ai effectivement utiliser un simple AS EventHandler mais j'aurais très bien pu creer un deleguer et instancié en AS NomdeDelegate.

Concernant le pb si le client est démarré avant le serveur : oui je sais : j'ai codé cela en - d'1 heure pour dépanner donc y a pas de controle d'erreur partout effectivement.

Sinon hesite pas à poster tes modifs ou m'envoyer la soure modifié.
dieuzorro Messages postés 21 Date d'inscription jeudi 6 janvier 2005 Statut Membre Dernière intervention 14 janvier 2008
27 juil. 2007 à 16:18
Je viens juste de tester ton exemple sa marche. (Désoler d'avoir été long) Donc sa marche sa cool mais j'ai un peu modifier le code ( Ajout d'un événement msg(as_msg as string) et déclaration dans le client de Public WithEvents eventshim As eventshim)

Par contre quand le client démarre avant le serveur il y a une exception lors de l'instanciation de la classe EventShim.

Ps : langju si tu veux voir les petites modifications que j'ai dit le moi! Et Merci pour ton exemple qui est très bien.
langju Messages postés 88 Date d'inscription mardi 6 février 2001 Statut Membre Dernière intervention 27 juillet 2007
14 juil. 2007 à 11:30
ok DIEUZORRO, j'espère que cela t'iras :-) tiens moi au courant
dieuzorro Messages postés 21 Date d'inscription jeudi 6 janvier 2005 Statut Membre Dernière intervention 14 janvier 2008
14 juil. 2007 à 09:32
Merci je vai regarder!
cacalex Messages postés 69 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 3 avril 2008
13 juil. 2007 à 20:16
langju:

Merci pour le mode interactif... L'option m'avais échappé...

ça fonctionne !
langju Messages postés 88 Date d'inscription mardi 6 février 2001 Statut Membre Dernière intervention 27 juillet 2007
13 juil. 2007 à 19:31
CACALEX, en effet, dans ce cas il faut que tu lances le serveur en mode "interactif" avec psexec.
langju Messages postés 88 Date d'inscription mardi 6 février 2001 Statut Membre Dernière intervention 27 juillet 2007
13 juil. 2007 à 19:29
DIEUZORRO, j'ai ajouté un évenement.

Celui-ci est tout bête, il s'agit d'un eventHandler.

Rien ne vous empeche de faire votre propre délégué pour lui transmettre une string plutot que sender et e.
dieuzorro Messages postés 21 Date d'inscription jeudi 6 janvier 2005 Statut Membre Dernière intervention 14 janvier 2008
12 juil. 2007 à 21:01
Oui c'est bien sa!
cacalex Messages postés 69 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 3 avril 2008
12 juil. 2007 à 20:46
cool...

J'ai modifier le pare-feu windows pour laisser un seul port ouvert... Je fait ecouter le serveur sur ce port...

Et au besoin, sur commande, le serveur ferme le firewall windows, et le réouvre lorsque j'ai terminé...

:)
J'ai comme plein d'idée pour une appli comme ça !
Merci !
langju Messages postés 88 Date d'inscription mardi 6 février 2001 Statut Membre Dernière intervention 27 juillet 2007
12 juil. 2007 à 18:46
DIEUZERRO, si je comprend bien, tu veux que le serveur indique au client que l'opération a bien été réalisé c'est cela ?
langju Messages postés 88 Date d'inscription mardi 6 février 2001 Statut Membre Dernière intervention 27 juillet 2007
12 juil. 2007 à 18:30
Il faut dans ce cas gérer une Delegate Sub avec un appel en callback.

Si vraiment j'ai le temps j'ajouterais cet evenement qui indique que le serveur a terminé.
dieuzorro Messages postés 21 Date d'inscription jeudi 6 janvier 2005 Statut Membre Dernière intervention 14 janvier 2008
12 juil. 2007 à 18:07
vraiment bien.
dieuzorro Messages postés 21 Date d'inscription jeudi 6 janvier 2005 Statut Membre Dernière intervention 14 janvier 2008
12 juil. 2007 à 18:03
Moi je souhaiterai un événement du genre travail fini coté serveur avec comme argument de l'événement une string stockant un rapport. Si je pose la question c'est que j'ai déja cherché à ce sujet la et que j'ai rien trouvé de fraiment bien.
cacalex Messages postés 69 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 3 avril 2008
12 juil. 2007 à 16:40
Bizarrement, si je démarre la partie "serveur" à distance, avec psexec, l'ordi distant est bien à l'écoute sur le port 1069, mais le "client" n'arrive jamais à se connecter...

ça ne change rien à ton programme, plutôt un bogue au niveau de l'"impersonating" de psexec...
langju Messages postés 88 Date d'inscription mardi 6 février 2001 Statut Membre Dernière intervention 27 juillet 2007
12 juil. 2007 à 16:04
lol
cacalex Messages postés 69 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 3 avril 2008
12 juil. 2007 à 15:42
Moi, si je met au moins 5 minutes, je facture 1 heure :)
langju Messages postés 88 Date d'inscription mardi 6 février 2001 Statut Membre Dernière intervention 27 juillet 2007
12 juil. 2007 à 14:43
oui peut être 45 minutes... mais c clair - d'1 heure (sinon c'est facturé :-)).
En vérité c'est très rapide à coder cela : je disposais déjà d'une partie des fonctions dans d'autres programmes. Copier / coller et modification ca va tres vite ensuite.

La source peut être utile effectivement.
cacalex Messages postés 69 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 3 avril 2008
12 juil. 2007 à 13:57
Joli !

Si ça vraiment été codé en 30 min...

"PS: modifiez la source à votre convenance."

Compte sur moi !
:)
langju Messages postés 88 Date d'inscription mardi 6 février 2001 Statut Membre Dernière intervention 27 juillet 2007
12 juil. 2007 à 13:49
Quelle genre d'evenement aurais-tu voulu ajouter ?
langju Messages postés 88 Date d'inscription mardi 6 février 2001 Statut Membre Dernière intervention 27 juillet 2007
12 juil. 2007 à 13:31
les evenements sont à ajouter dans le remoteoperation.vb

PS: modifiez la source à votre convenance.
dieuzorro Messages postés 21 Date d'inscription jeudi 6 janvier 2005 Statut Membre Dernière intervention 14 janvier 2008
12 juil. 2007 à 13:06
Salut,

Pourai-tu ajouter un evenement dans ton exemple?
langju Messages postés 88 Date d'inscription mardi 6 février 2001 Statut Membre Dernière intervention 27 juillet 2007
11 juil. 2007 à 19:17
Vos commentaires et notes sont bienvenus. (Source pour débutant très simple à comprendre.)
Rejoignez-nous