TcpClientChannel Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Per chiamate remote, implementa un canale client per chiamate remote che utilizza il protocollo TCP per la trasmissione dei messaggi.
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
- Ereditarietà
-
TcpClientChannel
- Implementazioni
Esempio
Nell'esempio di codice seguente viene illustrato l'uso della TcpClientChannel classe per chiamare un tipo remoto.
#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() );
}
}
Il tipo remoto chiamato nell'esempio precedente è definito dal codice seguente.
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);
}
}
Commenti
Importante
La chiamata a metodi da questa classe con dati non attendibili costituisce un rischio per la sicurezza. Chiamare i metodi da questa classe solo con dati attendibili. Per altre informazioni, vedere Convalidare tutti gli input.
I canali di trasporto dei messaggi tra limiti remoti (ad esempio, computer o domini dell'applicazione). La TcpClientChannel classe trasporta i messaggi usando il protocollo TCP.
I canali vengono usati dall'infrastruttura remota di .NET Framework per il trasporto di chiamate remote. Quando un client effettua una chiamata a un oggetto remoto, la chiamata viene serializzata in un messaggio inviato da un canale client e ricevuto da un canale server. Viene quindi deserializzato ed elaborato. Tutti i valori restituiti vengono trasmessi dal canale del server e ricevuti dal canale client.
Per eseguire un'elaborazione aggiuntiva dei messaggi sul lato client, è possibile specificare un'implementazione dell'interfaccia IClientChannelSinkProvider tramite cui vengono passati tutti i messaggi elaborati dall'oggetto TcpClientChannel .
Per impostazione predefinita, la TcpClientChannel classe usa un formattatore binario per serializzare tutti i messaggi.
Un TcpClientChannel oggetto ha associato proprietà di configurazione che possono essere impostate in fase di esecuzione in un file di configurazione (richiamando il metodo statico RemotingConfiguration.Configure ) o a livello di codice (passando una IDictionary raccolta al TcpClientChannel costruttore). Per un elenco di queste proprietà di configurazione, vedere la documentazione per TcpClientChannel.
Costruttori
TcpClientChannel() |
Inizializza una nuova istanza della classe TcpClientChannel. |
TcpClientChannel(IDictionary, IClientChannelSinkProvider) |
Inizializza una nuova istanza della classe TcpClientChannel con le proprietà di configurazione e il sink specificato. |
TcpClientChannel(String, IClientChannelSinkProvider) |
Inizializza una nuova istanza della classe TcpClientChannel con il nome e il sink specificato. |
Proprietà
ChannelName |
Ottiene il nome del canale corrente. |
ChannelPriority |
Ottiene la priorità del canale corrente. |
IsSecured |
Ottiene o imposta un valore booleano che indica se il canale corrente è protetto. |
Metodi
CreateMessageSink(String, Object, String) |
Restituisce un sink dei messaggi del canale che invia messaggi all'URL o all'oggetto dati del canale specificato. |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
Parse(String, String) |
Estrae dall'URL specificato l'URI del canale e quello dell'oggetto remoto conosciuto. |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |