- Le constructeur sans paramètre TcpChannel( ) : crée seulement un canal client, et pas un canal serveur( voir MSDN). J’ajoute que c’est pour cette raison que vous ne précisez pas de numéro de port : le numéro de port n’a de sens que pour un canal serveur !(c’est le lieu de communication des données).
- Le constructeur TcpChannel( Int32) : crée un canal serveur qui écoute sur le port spécifié( voir MSDN). Ce constructeur est utilisé typiquement dans le cadre de l’application serveur. Mais il peut l’être aussi dans une application cliente, dans le cas( paragraphe ci-dessous) où on veut passer un objet du client en paramètre à une méthode distante.
J’ajoute que ce constructeur crée aussi un canal client, ce qui permet d’appeler les méthodes distantes de l’objet serveur, dans le cas d’un client qui s’est créé son channel ainsi pour pouvoir passer en paramètre un objet à une méthode distante(voir cas ci-dessous).
· Il est indispensable d’utiliser ce constructeur dans le cas d’un client qui va passer à une méthode distante un objet par référence. En effet, le client se comporte alors en serveur, et l’objet passé à la méthode devient un objet distant pour le serveur ! Un exemple vous est donné ci-dessous :
//ici on est obligé de préciser le numéro de port,
//pour pouvoir passer en paramètre un objet par référence, à une méthode distante: dans ce cas, on a besoin
//d'un canal serveur également
TcpChannel channel = new TcpChannel(1);
//Marche pas TcpChannel channel = new TcpChannel(); //ne marche pas ici,
//essayé!!!: server internal error ds ce client à l'exécution!!!
//mais marche dès lors que je ne passe pas d’objet en