TcpClientChannel Klasse

Definition

Bei Remoteanrufen wird ein Clientkanal implementiert, der das TCP-Protokoll zum Übertragen von Nachrichten verwendet.

public ref class TcpClientChannel : System::Runtime::Remoting::Channels::IChannelSender
public ref class TcpClientChannel : System::Runtime::Remoting::Channels::IChannelSender, System::Runtime::Remoting::Channels::ISecurableChannel
public class TcpClientChannel : System.Runtime.Remoting.Channels.IChannelSender
public class TcpClientChannel : System.Runtime.Remoting.Channels.IChannelSender, System.Runtime.Remoting.Channels.ISecurableChannel
type TcpClientChannel = class
    interface IChannelSender
    interface IChannel
type TcpClientChannel = class
    interface IChannelSender
    interface IChannel
    interface ISecurableChannel
Public Class TcpClientChannel
Implements IChannelSender
Public Class TcpClientChannel
Implements IChannelSender, ISecurableChannel
Vererbung
TcpClientChannel
Implementiert

Beispiele

Das folgende Codebeispiel zeigt die Verwendung der TcpClientChannel Klasse zum Aufrufen eines Remotetyps.

#using <System.Runtime.Remoting.dll>
#using <System.dll>
#using <Remotable.dll>

using namespace System;
using namespace System::Runtime::Remoting;
using namespace System::Runtime::Remoting::Channels;
using namespace System::Runtime::Remoting::Channels::Tcp;
int main()
{
   
   // Set up a client channel.
   TcpClientChannel^ clientChannel = gcnew TcpClientChannel;
   ChannelServices::RegisterChannel( clientChannel );
   
   // Show the name and priority of the channel.
   Console::WriteLine( "Channel Name: {0}", clientChannel->ChannelName );
   Console::WriteLine( "Channel Priority: {0}", clientChannel->ChannelPriority );
   
   // Obtain a proxy for a remote object.
   RemotingConfiguration::RegisterWellKnownClientType( Remotable::typeid, "tcp://localhost:9090/Remotable.rem" );
   
   // Call a method on the object.
   Remotable ^ remoteObject = gcnew Remotable;
   Console::WriteLine( remoteObject->GetCount() );
}
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;

public class Client
{
    public static void Main()
    {

        // Set up a client channel.
        TcpClientChannel clientChannel = new TcpClientChannel();
        ChannelServices.RegisterChannel(clientChannel);

        // Show the name and priority of the channel.
        Console.WriteLine("Channel Name: {0}", clientChannel.ChannelName);
        Console.WriteLine("Channel Priority: {0}", clientChannel.ChannelPriority);

        // Obtain a proxy for a remote object.
        RemotingConfiguration.RegisterWellKnownClientType(
            typeof(Remotable), "tcp://localhost:9090/Remotable.rem"
        );

        // Call a method on the object.
        Remotable remoteObject = new Remotable();
        Console.WriteLine( remoteObject.GetCount() );
    }
}

Der im obigen Beispiel aufgerufene Remotetyp wird durch den folgenden Code definiert.

using namespace System;
using namespace System::Runtime::Remoting;

public ref class Remotable: public MarshalByRefObject
{
private:
   int callCount;

public:
   Remotable()
      : callCount( 0 )
   {}

   int GetCount()
   {
      callCount++;
      return (callCount);
   }
};
using System;
using System.Runtime.Remoting;

public class Remotable : MarshalByRefObject
{

    private int callCount = 0;

    public int GetCount()
    {
        callCount++;
        return(callCount);
    }
}

Hinweise

Important

Das Aufrufen von Methoden aus dieser Klasse mit nicht vertrauenswürdigen Daten ist ein Sicherheitsrisiko. Rufen Sie die Methoden aus dieser Klasse nur mit vertrauenswürdigen Daten auf. Weitere Informationen finden Sie unter Überprüfen aller Eingaben.

Kanäle transportieren Nachrichten über Remotinggrenzen hinweg (z. B. Computer oder Anwendungsdomänen). Die TcpClientChannel Klasse transportiert Nachrichten mithilfe des TCP-Protokolls.

Kanäle werden von der .NET Framework-Remotinginfrastruktur zum Transport von Remoteanrufen verwendet. Wenn ein Client einen Aufruf an ein Remoteobjekt sendet, wird der Aufruf in eine Nachricht serialisiert, die von einem Clientkanal gesendet und von einem Serverkanal empfangen wird. Es wird dann deserialisiert und verarbeitet. Alle zurückgegebenen Werte werden vom Serverkanal übertragen und vom Clientkanal empfangen.

Um eine zusätzliche Verarbeitung von Nachrichten auf clientseitiger Seite durchzuführen, können Sie eine Implementierung der IClientChannelSinkProvider Schnittstelle angeben, über die alle nachrichten, die von der TcpClientChannel Client verarbeitet werden, übergeben werden.

Standardmäßig verwendet die TcpClientChannel Klasse einen Binärformatierer, um alle Nachrichten zu serialisieren.

Ein TcpClientChannel Objekt verfügt über zugeordnete Konfigurationseigenschaften, die zur Laufzeit entweder in einer Konfigurationsdatei (durch Aufrufen der statischen RemotingConfiguration.Configure Methode) oder programmgesteuert (durch Übergeben einer IDictionary Auflistung an den TcpClientChannel Konstruktor) festgelegt werden können. Eine Liste dieser Konfigurationseigenschaften finden Sie in der Dokumentation für TcpClientChannel.

Konstruktoren

Name Beschreibung
TcpClientChannel()

Initialisiert eine neue Instanz der TcpClientChannel-Klasse.

TcpClientChannel(IDictionary, IClientChannelSinkProvider)

Initialisiert eine neue Instanz der TcpClientChannel Klasse mit den angegebenen Konfigurationseigenschaften und -senken.

TcpClientChannel(String, IClientChannelSinkProvider)

Initialisiert eine neue Instanz der TcpClientChannel Klasse mit dem angegebenen Namen und sink.

Eigenschaften

Name Beschreibung
ChannelName

Ruft den Namen des aktuellen Kanals ab.

ChannelPriority

Ruft die Priorität des aktuellen Kanals ab.

IsSecured

Dient zum Abrufen oder Festlegen eines booleschen Werts, der angibt, ob der aktuelle Kanal sicher ist.

Methoden

Name Beschreibung
CreateMessageSink(String, Object, String)

Gibt eine Kanalnachrichtensenke zurück, die Nachrichten an das angegebene URL- oder Kanaldatenobjekt übermittelt.

Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
Parse(String, String)

Extrahiert den Kanal-URI und den bekannten Remoteobjekt-URI aus der angegebenen URL.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für: