TcpClientChannel Klass

Definition

För fjärranrop implementerar en klientkanal som använder TCP-protokollet för att överföra meddelanden.

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
Arv
TcpClientChannel
Implementeringar

Exempel

I följande kodexempel visas hur klassen används TcpClientChannel för att anropa en fjärrtyp.

#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() );
    }
}

Fjärrtypen som anropas i exemplet ovan definieras av följande kod.

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);
    }
}

Kommentarer

Important

Att anropa metoder från den här klassen med ej betrodda data är en säkerhetsrisk. Anropa metoderna från den här klassen endast med betrodda data. För mer information, se Verifiera alla indata.

Kanaler transporterar meddelanden över fjärrkommunikationsgränser (till exempel datorer eller programdomäner). Klassen TcpClientChannel transporterar meddelanden med TCP-protokollet.

Kanaler används av .NET Framework-fjärrkommunikationsinfrastrukturen för att transportera fjärranrop. När en klient anropar ett fjärrobjekt serialiseras anropet till ett meddelande som skickas av en klientkanal och tas emot av en serverkanal. Den deserialiseras och bearbetas sedan. Alla returnerade värden överförs av serverkanalen och tas emot av klientkanalen.

Om du vill utföra ytterligare bearbetning av meddelanden på klientsidan kan du ange en implementering av IClientChannelSinkProvider gränssnittet genom vilket alla meddelanden som bearbetas av TcpClientChannel skickas.

Som standard TcpClientChannel använder klassen en binär formaterare för att serialisera alla meddelanden.

Ett TcpClientChannel objekt har associerade konfigurationsegenskaper som kan anges vid körning antingen i en konfigurationsfil (genom att anropa den statiska RemotingConfiguration.Configure metoden) eller programmatiskt (genom att skicka en IDictionary samling till TcpClientChannel konstruktorn). En lista över dessa konfigurationsegenskaper finns i dokumentationen för TcpClientChannel.

Konstruktorer

Name Description
TcpClientChannel()

Initierar en ny instans av TcpClientChannel klassen.

TcpClientChannel(IDictionary, IClientChannelSinkProvider)

Initierar en ny instans av TcpClientChannel klassen med de angivna konfigurationsegenskaperna och mottagaren.

TcpClientChannel(String, IClientChannelSinkProvider)

Initierar en ny instans av TcpClientChannel klassen med det angivna namnet och mottagaren.

Egenskaper

Name Description
ChannelName

Hämtar namnet på den aktuella kanalen.

ChannelPriority

Hämtar prioriteten för den aktuella kanalen.

IsSecured

Hämtar eller anger ett booleskt värde som anger om den aktuella kanalen är säker.

Metoder

Name Description
CreateMessageSink(String, Object, String)

Returnerar en kanalmeddelandemottagare som levererar meddelanden till den angivna URL:en eller kanaldataobjektet.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
Parse(String, String)

Extraherar kanal-URI:n och den välkända fjärrobjekt-URI:n från den angivna URL:en.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Gäller för