C# Remote Listener Object

In the previous section, we successfully created a C# Remotable Object , specifically the RemoteTime object. To enable other application domains to create instances of this object ( RemoteTime ) remotely, we need to create a listener object. This listener object plays a vital role by selecting and registering a suitable channel that handles the networking protocol and serialization formats. Additionally, the listener object registers the type with the .NET Remoting System, allowing it to utilize the designated channel for listening and handling requests related to the specified type. In C#, C# Remote Channels serve as essential objects responsible for managing network protocols and serialization formats, ensuring smooth and reliable communication within the remoting framework.

Listener Application

In the following C# source code, we are implementing a listener application called TimeListener.cs. This application serves as the listener object for the Remote Type, RemoteTime. The TimeListener class is responsible for locating and loading the configuration from the TimeListener.exe.config file, which contains the necessary settings for the RemotableType class. By properly configuring and utilizing the TimeListener application, seamless communication and interaction with the RemoteTime object can be achieved within the remoting environment.

Full Source C#
using System; using System.Runtime.Remoting; public class TimeListener { public static void Main() { RemotingConfiguration.Configure("TimeListener.exe.config"); Console.WriteLine("Listening for requests from the Client! Press Enter to exit..."); Console.ReadLine(); } }

Copy and paste the above C# source code into a file and save it as TimeListener.cs .

In order to provide the necessary communication information to the listener object, it is essential to create an additional configuration file. This configuration file, structured in XML format, allows us to specify various parameters such as the activation mode, remote type, channel settings, and communication port. By utilizing this configuration file, we can effectively configure and customize the communication aspects of the listener object, ensuring seamless and reliable communication within the application.

csharp-timeListener.exe.config

Click here to download TimeListener.exe.config

Compile the class file TimeListener.cs using the command-line tools that ship with the Visual Studio SDK .

At the command prompt type the following command:

csc /r:RemoteTime.dll TimeListener.cs

After you compile the TimeListener.cs , you will get a file called TimeListener.exe in the directory where your compiler resides.

If your file TimeListener.cs and RemoteTime.dll is residing in c:\src then you should type command like the following :

csc /r:c:\src\RemoteTime.dll c:\src\TimeListener.cs

Conclusion

A C# Remote Listener Object is responsible for listening to and handling remote requests and interactions from other application domains or machines, facilitating communication and interaction with remote objects.