
Il est maintenant possible de développer des extensions (AddOns)
pour MyTCPMON à partir de la version 1.1
Les extensions permettent de contrôler et de modifier le flux
d'information qui transite entre la source et la destination de
MyTCPMON.
N'avez vous jamais rêvé que votre serveur de messagerie classe tous
les messages entrant et sortant de votre entreprise dans des
dossiers ou dans une base de données ? Ne vous êtes vous jamais dit
qu'il serais bien d'interdire certaines commandes
dangereuses de
votre vieux serveur FTP en production ? N'avez vous jamais eu besoin
d'une petite passerelle de compatibilité entre deux serveurs qui
fonctionne selon un protocole d'échange normalisé ? ou de changer le
jeton renvoyé par le serveur de licence développé par votre ancien
prestataire qui à mis la clé sous la porte depuis 5 ans ?
Vous allez découvrir que MyTCPMON est l'outil idéal pour étendre les
possibilités de vos serveurs alors que vous n'avez pas accès à
leurs codes sources.
Pour développer un AddOn pour MyTCPMON, vous avez besoin de :
- compétence en .NET (C# ou VB)
- Visual Studio (2010 de préférence)
- .NET Framework 3.5
- MyTCPMON installé sur le poste de développement (pour avoir accès
aux DLL et faire du débogage)
Après avoir installé MyTCPMON 1.1 ou supérieur, lancez Visual studio, et créez un nouveau projet de type "Bibliothèque de classes" en spécifiant le ".NET Framework 3.5"

Dans l'explorateur de solution, faites un click droit sur "Référence" --> "Ajouter une référence...", choisissez l'onglet "Parcourir" puis naviguez jusqu'au répertoire d'installation de MyTCPMON.
Une fois dedans, sélectionnez toutes les dll ayant le nom commençant par "DevExpress" ainsi que la DLL "MyTCPMON.AddOn.dll" puis cliquez sur "OK"

Ensuite, faite un clique droit sur votre projet, et choisissez le menu "Ajouter" --> "Control utilisateur"
Donnez un nom à votre control puis cliquez sur "Ajouter".

A cette étape ci, faite un clique droit sur votre control situé dans l'explorateur de solution et choisissez le menu "Afficher le code".
Remplacez l'héritage "UserControl" par "MyTCPMON.AddOn.MyTCPMONAddOn"

Voila, vous êtes en condition pour manipuler votre premier AddOn MyTCPMON !
Les deux grand principes de l'Addon MyTCPMON sont les suivants :

Utilisez le pour permettre à l'utilisateur final de paramétrer ou visualiser l'état de votre AddOn. Celui ci est en Winform, mais je pense qu'il est possible d'y inclure du WPF. (je ne suis pas un spécialiste de la question)

La propriété AddonName : elle permet de définir
le nom qui sera affiché dans l'onglet de votre AddOn.
La méthode ReceivePacket : elle permet de définir le
comportement à adopter pour chaque réception d'un paquet de données
TCP/IP (c'est un peut la fonction centrale de l'AddOn)
voici ce qu'il faut savoir au sujet de la fonction ReceivePacket :
Cette méthode est appelé par MyTCPMON chaque fois qu'un paquet de données doit être transféré de la socket source vers la socket destination et vice-versa.
Le paramètre IPEndPoint
Source
est une structure définissant les informations IP de l'hôte qui
émet le paquet.
Le paramètre IPEndPoint
Destination est une structure définissant
les informations IP de l'hôte devant recevoir le paquet.
Pour plus d'informations sur cette structure, référez vous à la documentation Microsoft disponible ici.
La partie la plus intéressante se trouve dans le troisième argument, la structure PacketData.
Voici sa définition :

Comme vous pouvez le constater, cette structure va nous permettre d'agir directement sur le comportement du flux grâce à l'obtention et à la modification de ses propriétés.
Ainsi, il vous sera possible de :
- Dire si oui ou non vous voulez que les données (propriété RawData)
soient transférés vers l'autre socket en définissant la propriété
Forward.
- Dire si oui ou non vous voulez que les données (propriété RawData)
soient retournés à l'envoyeur en définissant la propriété
ReturnToSender.
- Obtenir les données du paquet, et éventuellement les modifier en
réaffectant le tableau de byte RawData.
il est a noter que vous pouvez combiner les propriétés Forward et ReturnToSender.
Voici comment configurer votre environnement pour tirer pleinement partie du débuggeur de Visual Studio :
Première étape : Après avoir mis en place les prémices de votre AddOn (voir partie préparation de l'extension), compilez votre DLL en mode debug et notez le chemin pointant vers cette dernière

Une fois le chemin obtenu, ouvrez MyTCPMON et cliquez sur Addon --> Charger

Naviguez jusqu'a l'emplacement de la DLL de votre AddOn, sélectionnez la puis cliquez sur "Ouvrir"

Votre AddOn apparait dans un nouvel onglet ! cliquez sur le bouton Enregistrer puis quittez MyTCPMON.

Dans votre solution Visual Studio, faite un clique droit --> "propriétés" sur le projet contenant votre AddOn.

Cliquez sur l'onglet "Déboguer", dans "Action de démarrage", choisissez le bouton radio "Démarrer le programme externe" et renseignez le chemin complet vers l'exécutable de MyTCPMON.exe

Revenez maintenant dans votre projet puis appliquer un point
d'arrêt dans la fonction
ReceivePacket.
Démarrez le débogage de votre application. MyTCPMON se lance.
Configurez le comme bon vous semble puis lancez l'écoute de port en
appuyant sur le bouton "Démarrer" de MyTCPMON.
Lorsque un échange de paquet se produit, votre point d'arrêt sera sollicité !

Vous savez dorénavant tous ce qu'il faut savoir pour créer un AddOn MyTCPMON !
Je vous incite maintenant à consulter l'exemple d'AddOn pour entrer plus intensément dans le sujet.
|
|
|