Bonsoir tout le monde,

je suis en train de réaliser une application client/serveur en C# en utilisant le .NET Remoting.

Serveur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
       BinaryServerFormatterSinkProvider provider = new BinaryServerFormatterSinkProvider();
        provider.TypeFilterLevel = System.Runtime.Serialization.Formatters.TypeFilterLevel.Full;
        IDictionary props = new Hashtable();
        props["port"] = 8089;
        TcpChannel chan = new TcpChannel(props, null, provider);
        ChannelServices.RegisterChannel(chan, true);
        Type typ = Type.GetType("TEST.RemoteTest ,Classes");
        RemotingConfiguration.RegisterWellKnownServiceType(typ, "Test", WellKnownObjectMode.Singleton);
Client :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
TcpChannel chan = new TcpChannel(8090);
ChannelServices.RegisterChannel(chan, true);
RemoteTest obj = (RemoteTest)Activator.GetObject(typeof(TEST.RemoteTest), "tcp://localhost:8089/Test");
 
Animal animal1 = new Animal("chien");
 obj.AjouterAnimal(animal1);
Voilà en gros pour résumer mon application, le serveur se lance et distribue l'objet RemoteTest. Cette classe contient une méthode (qui marche) permettant d'ajouter un animal, dans une collection par exemple (j'ai une classe animal à coté avec le constructeur).

Cependant, lorsque je connecte un deuxième client, il va planter. Ce qui est normal car il va utiliser le canal 8090 qui est utilisé par un autre client. (Si je ne renseigne pas le numéro dans le canal, l'ajout de l'animal ne marchera pas.)

Comment pourrais-je faire pour pouvoir exécuter n clients ?

je vous remercie par avance.