TcpClientChannel Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
W przypadku wywołań zdalnych implementuje kanał klienta, który używa protokołu TCP do przesyłania komunikatów.
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
- Dziedziczenie
-
TcpClientChannel
- Implementuje
Przykłady
Poniższy przykład kodu przedstawia użycie TcpClientChannel klasy do wywołania typu zdalnego.
#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() );
}
}
Typ zdalny o nazwie w powyższym przykładzie jest definiowany przez następujący 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);
}
}
Uwagi
Ważne
Wywoływanie metod z tej klasy z niezaufanymi danymi jest zagrożeniem bezpieczeństwa. Wywołaj metody z tej klasy tylko z zaufanymi danymi. Aby uzyskać więcej informacji, zobacz Weryfikowanie wszystkich danych wejściowych.
Kanały transportują komunikaty przez granice komunikacji zdalnie (na przykład komputery lub domeny aplikacji). Klasa TcpClientChannel transportuje komunikaty przy użyciu protokołu TCP.
Kanały są używane przez infrastrukturę komunikacji zdalnej .NET Framework do transportu połączeń zdalnych. Gdy klient wykonuje wywołanie obiektu zdalnego, wywołanie jest serializowane do komunikatu wysyłanego przez kanał klienta i odbierane przez kanał serwera. Następnie jest deserializowany i przetwarzany. Wszystkie zwrócone wartości są przesyłane przez kanał serwera i odbierane przez kanał klienta.
Aby wykonać dodatkowe przetwarzanie komunikatów po stronie klienta, można określić implementację interfejsu IClientChannelSinkProvider , za pomocą którego przekazywane są wszystkie komunikaty przetwarzane przez TcpClientChannel program .
Domyślnie klasa TcpClientChannel używa formatatora binarnego do serializacji wszystkich komunikatów.
Obiekt TcpClientChannel ma skojarzone właściwości konfiguracji, które można ustawić w czasie wykonywania w pliku konfiguracji (wywołując metodę statyczną RemotingConfiguration.Configure ) lub programowo (przekazując IDictionary kolekcję do konstruktora TcpClientChannel ). Aby uzyskać listę tych właściwości konfiguracji, zobacz dokumentację programu TcpClientChannel.
Konstruktory
TcpClientChannel() |
Inicjuje nowe wystąpienie klasy TcpClientChannel. |
TcpClientChannel(IDictionary, IClientChannelSinkProvider) |
Inicjuje TcpClientChannel nowe wystąpienie klasy z określonymi właściwościami konfiguracji i ujściem. |
TcpClientChannel(String, IClientChannelSinkProvider) |
Inicjuje nowe wystąpienie klasy o określonej nazwie i ujściu TcpClientChannel . |
Właściwości
ChannelName |
Pobiera nazwę bieżącego kanału. |
ChannelPriority |
Pobiera priorytet bieżącego kanału. |
IsSecured |
Pobiera lub ustawia wartość logiczną wskazującą, czy bieżący kanał jest bezpieczny. |
Metody
CreateMessageSink(String, Object, String) |
Zwraca ujście komunikatów kanału, który dostarcza komunikaty do określonego adresu URL lub obiektu danych kanału. |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera bieżące wystąpienie. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
Parse(String, String) |
Wyodrębnia identyfikator URI kanału i zdalny dobrze znany identyfikator URI obiektu z określonego adresu URL. |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |