Export (0) Print
Expand All

IChannelReceiver Interface

Provides required functions and properties for the receiver channels.

Namespace:  System.Runtime.Remoting.Channels
Assembly:  mscorlib (in mscorlib.dll)

public interface IChannelReceiver : IChannel

The IChannelReceiver type exposes the following members.

Public propertyChannelDataGets the channel-specific data.
Public propertyChannelNameGets the name of the channel. (Inherited from IChannel.)
Public propertyChannelPriorityGets the priority of the channel. (Inherited from IChannel.)

Public methodGetUrlsForUriReturns an array of all the URLs for a URI.
Public methodParseReturns the object URI as an out parameter, and the URI of the current channel as the return value. (Inherited from IChannel.)
Public methodStartListeningInstructs the current channel to start listening for requests.
Public methodStopListeningInstructs the current channel to stop listening for requests.

The receiving side of channels must expose the 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] + ":" +
      // 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));
   public string ChannelName
         return myChanneName;
   public int ChannelPriority
         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
         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)
         myListening = true;
         Console.WriteLine("Server Started Listening !!!");

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

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Community Additions

© 2014 Microsoft