Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

IChannelReceiver interface

 

Date de publication : novembre 2016

Fournit des propriétés et des fonctions requises pour les canaux de récepteur.

Espace de noms:   System.Runtime.Remoting.Channels
Assembly:  mscorlib (dans mscorlib.dll)

[ComVisibleAttribute(true)]
public interface IChannelReceiver : IChannel

NomDescription
System_CAPS_pubpropertyChannelData

Obtient les données spécifiques de canal.

System_CAPS_pubpropertyChannelName

Obtient le nom du canal.(Hérité de IChannel.)

System_CAPS_pubpropertyChannelPriority

Obtient la priorité du canal.(Hérité de IChannel.)

NomDescription
System_CAPS_pubmethodGetUrlsForUri(String)

Retourne un tableau de toutes les URL pour un URI.

System_CAPS_pubmethodParse(String, String)

Retourne l’URI d’objet en tant que paramètre de sortie et l’URI du canal en cours comme valeur de retour.(Hérité de IChannel.)

System_CAPS_pubmethodStartListening(Object)

Fait en sorte que le canal commence à écouter les demandes en cours.

System_CAPS_pubmethodStopListening(Object)

Indique le canal actif pour arrêter d’écouter les demandes.

Le côté réception des canaux doit exposer le IChannelReceiver interface.

class MyCustomChannel : IChannelReceiver
{
   private ChannelDataStore myChannelData;
   private int myChannelPriority = 25;
   // Set the 'ChannelName' to 'MyCustomChannel'.
   private string myChanneName = "tcp";
   // Implement 'ChannelName' property.
   private TcpListener myTcpListener;
   private int myPortNo;
   private bool myListening = false;
   private Thread myThread;
   public MyCustomChannel(int portNo)
   {  
      myPortNo = portNo;
      string [] myURI = new string[1];
      myURI[0] = Dns.Resolve(Dns.GetHostName()).AddressList[0] + ":" +
                                                         portNo.ToString();
      // Store the 'URI' in 'myChannelDataStore'.
      myChannelData = new ChannelDataStore(myURI);
      // Create 'myTcpListener' to listen at the 'myPortNo' port.
      myTcpListener = new TcpListener(myPortNo);
      // Create the thread 'myThread'.
      myThread = new Thread(new ThreadStart(myTcpListener.Start));
      this.StartListening(null);
   }
   public string ChannelName
   {
      get
      {
         return myChanneName;
      }
   }
   public int ChannelPriority
   {
      get
      {
         return myChannelPriority;
      }
   }
   public string Parse(string myUrl, out string objectURI)
   {
      Regex myRegex = new Regex("/",RegexOptions.RightToLeft);
      // Check for '/' in 'myUrl' from Right to left.
      Match myMatch = myRegex.Match(myUrl);
      // Get the object URI.
      objectURI = myUrl.Substring(myMatch.Index);
      // Return the channel url.
      return myUrl.Substring(0,myMatch.Index);   
   }
   // Implementation of 'IChannelReceiver' interface.
   public object ChannelData
   {
      get
      {
         return myChannelData;
      }
   }

   // Create and send the object URL.
   public string[] GetUrlsForUri(string objectURI)
   {
      string[] myString = new string[1];
      myString[0] = Dns.Resolve(Dns.GetHostName()).AddressList[0]
                                                         + "/" + objectURI;
      return myString;
   }

   // Start listening to the port.
   public void StartListening(object data)
   {
      if(myListening == false)
      {
         myTcpListener.Start();
         myListening = true;
         Console.WriteLine("Server Started Listening !!!");
      }
   }

   // Stop listening to the port.
   public void StopListening(object data)
   {
      if(myListening == true)
      {
         myTcpListener.Stop();
         myListening = false;
         Console.WriteLine("Server Stopped Listening !!!");
      }
   }
}

.NET Framework
Disponible depuis 1.1
Retour au début
Afficher: