TcpClientChannel Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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) |