Feedback

C# - IPCRemoting Channel

Veröffentlicht von am 09.08.2006
(3 Bewertungen)
Erstellung eines IPCRemoting Channel
GFU-Schulungen  [Anzeige]

C# Grundlagen

Die Schulung vermittelt Ihnen die Grundlagen von C# in der Arbeit mit Datentypen sowie bei Klassenbibliotheken. Sie lernen, mit Variablen umzugehen und deren verschiedene Formen zu konvertieren. 

VB.NET Komplett

Sie stehen vo der Aufgabe, individuelle Anwendungen für Windows zu schreiben. Hier ist VB.NET die optimale Sprache. Sie erlernt sich recht leicht und passt sich komplett in die .NET Umgebung von Microsoft ein. Nach der Schulung entwickeln Sie anwenderfreundliche Programme in VB.NET . Mit den objektorientierten Modellen in VB.NET erzeugen Sie außerdem wiederverwendbare Komponenten.

/*
Kurze Erklärung: Das RemoteObjekt muß als Klassenbibliothek erstellt werden und unter Verweise beim Server sowie beim Client hinzugefügt sein.
*/

//Hier wird der Server Beschrieben
using System;
using System.Runtime.Remoting.Channels.Ipc;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting;
using System.Security.Permissions;

public class Servers
{
    [SecurityPermission(SecurityAction.Demand)]
    public static void Main(string[] args)
    {
        // Erstellen eines Channel
        IpcChannel serverChannel = new IpcChannel("localhost:9091");

        // Registriert denn Channal zum Server
        ChannelServices.RegisterChannel(serverChannel);

        // Stellt das Objekt für denn registrierten Channal bereit.
        RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemoteObject), "RemoteObject.rem",
                                                            WellKnownObjectMode.Singleton);

        Console.WriteLine("Drück ENTER zum Beenden des Server.");
        Console.ReadLine();
        Console.WriteLine("Server schließt.");
    }
}


//Hier wird der Client beschrieben.
using System;
using System.Runtime.Remoting.Channels.Ipc;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting;

public class Client
{
    [SecurityPermission(SecurityAction.Demand)]
    public static void Main(string[] args)
    {
        IpcChannel channel = new IpcChannel();

        // Registrieren des Channel.
        ChannelServices.RegisterChannel(channel);

        // Registrieren als Client für das Remote Objekt.
        WellKnownClientTypeEntry remoteType = new WellKnownClientTypeEntry(
                                                typeof(RemoteObject),
                                                "ipc://localhost:9091/RemoteObject.rem");

        RemotingConfiguration.RegisterWellKnownClientType(remoteType);

        // Anlegen einer Instance für das Remote Objekt.
        RemoteObject service = new RemoteObject();

        Console.WriteLine("Das Objekt wurde {0} mal aufgerufen.", service.GetCount());
        Console.ReadLine();
    }
}


// Remote Objekt.
using System;

public class RemoteObject : MarshalByRefObject
{
    private int callCount = 0;

    public int GetCount()
    {
        Console.WriteLine("GetCount wurde aufgerufen.");
        callCount++;
        return(callCount);
    }
}

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!