bon allez pour une fois, je vais le dire, comment faire....
La première étape de création de l'application serveur consiste à créer l'objet serveur. L'objet serveur est l'objet que l'application cliente instancie et avec lequel elle communique sur l'ordinateur serveur. L'application cliente agit ainsi par le biais d'un objet proxy qui est créé sur le client. Dans cet exemple, l'objet serveur réside dans une bibliothèque de classes (DLL) et se nomme myRemoteClass.
1. Créez une application de bibliothèque de classes dans Visual Basic .NET. Classe1 est créée par défaut.
2. Dans l'Explorateur de solutions, renommez le fichier de code Class1.vb en ServerClass.vb.
3. Ouvrez ServerClass.vb et remplacez le nom Classe1 par myRemoteClass. myRemoteClass doit hériter de la classe MarshalByRefObject. Cette classe doit apparaître comme suit :
Public Class myRemoteClass
Inherits MarshalByRefObject
End Class
4. Ajoutez une méthode publique à myRemoteClass qui prend une chaîne, affiche un message sur la console avec une valeur de la chaîne et renvoie True si la chaîne n'est pas vide.
Public Class myRemoteClass
Inherits MarshalByRefObject
Public Function SetString(sTemp As String) As Boolean
Try
Console.WriteLine("Cette chaîne '{0}' a une longueur de {1}", sTemp, Len(sTemp))
Return (sTemp <> "")
Catch
Return (False)
End Try
End Function
End Class
5. Construisez le projet pour créer l'assemblage ServerClass.dll.
6. Enregistrez et fermez le projet.
Retour au début
Création d'une application serveur distant
Après avoir créé l'objet serveur avec lequel le client va communiquer, vous devez enregistrer cet objet avec Remoting Framework. Quand vous enregistrez l'objet, vous devez également démarrer le serveur qui doit écouter sur un port pour que les clients s'y connectent. Pour ce faire, vous avez besoin d'un type de projet qui crée un exécutable. L'objet serveur est compris dans un projet distinct, ce qui vous permet de le référencer facilement à partir du projet client. Si vous incluez l'objet serveur dans ce projet, vous ne pouvez pas le référencer, car les références ne peuvent être définies que pour des fichiers DLL.
1. Par souci de simplicité, créez une application console dans Visual Basic .NET pour démarrer le serveur distant. Module1 est créé par défaut.
2. Dans l'Explorateur de solutions, remplacez le nom du fichier Module1.vb par ServerObject.vb.
3. Ajoutez une référence à l'espace de noms System.Runtime.Remoting.
4. Ajoutez une référence à l'assemblage ServerClass.dll que vous avez créé à la section précédente.
5. Utilisez l'instruction Imports sur les espaces de noms Remoting, Remoting.Channels et Remoting.Channels.Tcp afin de ne pas avoir à rédiger de déclaration dans ces espaces de noms ultérieurement dans votre code. Vous devez utiliser l'instruction Imports avant toute autre déclaration.
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels
Imports System.Runtime.Remoting.Channels.Tcp
6. Déclarez la variable appropriée. Pour cela, déclarez et initialisez un objet TcpChannel qui écoute les clients qui se connectent à un certain port, le port 8085 dans cet exemple. Utilisez la méthode RegisterChannel pour enregistrer le canal avec les services de canaux. Ajoutez le code de déclaration suivant à la procédure principale du module par défaut :
Dim chan As TcpChannel = New TcpChannel(8085)
ChannelServices.RegisterChannel(chan)
7. Appelez la méthode RegisterWellKnownType de l'objet RemotingConfiguration pour enregistrer l'objet ServerClass avec Remoting Framework et spécifiez les paramètres suivants dans le code :
a. Le nom de type complet de l'objet qui est enregistré (il s'agit ici de ServerClass.myRemoteClass) est suivi du nom d'assemblage ServerClass. Indiquez le nom de l'espace de noms ainsi que celui de la classe. Puisque vous n'avez pas spécifié d'espace de noms dans la section précédente, l'espace de noms racine est utilisé par défaut.
b. Affectez le nom RemoteTest au point de terminaison sur lequel l'objet doit être publié. Les clients doivent connaître ce nom pour pouvoir se connecter à l'objet.
c. Utilisez le mode de l'objet SingleCall pour spécifier le paramètre final. Le mode de l'objet indique la durée de vie de l'objet lorsqu'il est activé sur le serveur. Dans le cas d'objets SingleCall, une instance de la classe est créée pour chaque appel effectué par un client, même si le même client appelle la même méthode plusieurs fois. En revanche, les objets Singleton sont créés une seule fois, et tous les clients communiquent avec le même objet.
RemotingConfiguration.RegisterWellKnownServiceType( _
Type.GetType("ServerClass.myRemoteClass, ServerClass"), _
"RemoteTest", _
WellKnownObjectMode.SingleCall)
8. Utilisez la méthode ReadLine de l'objet Console de sorte que l'exécution de l'application serveur se poursuive.
Console.WriteLine("Appuyez sur <ENTRÉE> pour quitter...")
Console.ReadLine()
9. Construisez votre projet.
10. Enregistrez et fermez le projet.
Retour au début
Test de l'objet serveur
[ Ce message a ete modifié par : : GrosSabots le 10-09-2005 14:06 ]