TcpClientChannel TcpClientChannel TcpClientChannel TcpClientChannel Class

Definizione

Per chiamate remote, implementa un canale client per chiamate remote che utilizza il protocollo TCP per la trasmissione dei messaggi.For remote calls, implements a client channel that uses the TCP protocol to transmit messages.

public ref class TcpClientChannel : System::Runtime::Remoting::Channels::IChannelSender, System::Runtime::Remoting::Channels::ISecurableChannel
public class TcpClientChannel : System.Runtime.Remoting.Channels.IChannelSender, System.Runtime.Remoting.Channels.ISecurableChannel
type TcpClientChannel = class
    interface IChannelSender
    interface IChannel
    interface ISecurableChannel
Public Class TcpClientChannel
Implements IChannelSender, ISecurableChannel
Ereditarietà
TcpClientChannelTcpClientChannelTcpClientChannelTcpClientChannel
Implementazioni

Esempi

Esempio di codice seguente viene illustrato l'utilizzo del TcpClientChannel classe per chiamare un tipo remoto.The following code example shows the use of the TcpClientChannel class to call a remote type.

#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;
using System.Security.Permissions;

public class Client
{
    [SecurityPermission(SecurityAction.LinkDemand)]
    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 viene definito nel codice seguente.The remote type called in the example above is defined by the following code.

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.Calling methods from this class with untrusted data is a security risk. Chiamare i metodi da questa classe solo con dati attendibili.Call the methods from this class only with trusted data. Per altre informazioni, vedere Data Validation (Convalida dei dati).For more information, see Data Validation.

Canali di trasportano dei messaggi attraverso limiti remoti (ad esempio, computer o domini dell'applicazione).Channels transport messages across remoting boundaries (for example, computers or application domains). Il TcpClientChannel classe trasporta i messaggi usando il protocollo TCP.The TcpClientChannel class transports messages using the TCP protocol.

I canali utilizzati dall'infrastruttura remota di .NET Framework per trasportare chiamate remote.Channels are used by the .NET Framework remoting infrastructure to transport remote calls. 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.When a client makes a call to a remote object, the call is serialized into a message that is sent by a client channel and received by a server channel. È quindi deserializzato ed elaborato.It is then deserialized and processed. I valori restituiti vengono trasmessi dal canale del server e ha ricevuti dal canale del client.Any returned values are transmitted by the server channel and received by the client channel.

Per eseguire un'ulteriore elaborazione dei messaggi sul lato client, è possibile specificare un'implementazione del IClientChannelSinkProvider interfaccia tramite quale tutti i messaggi elaborati dal TcpClientChannel vengono passati.To perform additional processing of messages on the client side, you can specify an implementation of the IClientChannelSinkProvider interface through which all messages processed by the TcpClientChannel are passed.

Per impostazione predefinita, il TcpClientChannel classe utilizza un formattatore binario per serializzare tutti i messaggi.By default, the TcpClientChannel class uses a binary formatter to serialize all messages.

Oggetto TcpClientChannel oggetto sono associate le proprietà di configurazione che possono essere impostate in fase di esecuzione in un file di configurazione (richiamando il metodo statico RemotingConfiguration.Configure (metodo)) o a livello di codice (passando un IDictionary insieme al TcpClientChannel costruttore).A TcpClientChannel object has associated configuration properties that can be set at run time either in a configuration file (by invoking the static RemotingConfiguration.Configure method) or programmatically (by passing a IDictionary collection to the TcpClientChannel constructor). Per un elenco di queste proprietà di configurazione, vedere la documentazione relativa a TcpClientChannel.For a list of these configuration properties, see the documentation for TcpClientChannel.

Costruttori

TcpClientChannel() TcpClientChannel() TcpClientChannel() TcpClientChannel()

Inizializza una nuova istanza della classe TcpClientChannel.Initializes a new instance of the TcpClientChannel class.

TcpClientChannel(IDictionary, IClientChannelSinkProvider) TcpClientChannel(IDictionary, IClientChannelSinkProvider) TcpClientChannel(IDictionary, IClientChannelSinkProvider) TcpClientChannel(IDictionary, IClientChannelSinkProvider)

Inizializza una nuova istanza della classe TcpClientChannel con le proprietà di configurazione e il sink specificato.Initializes a new instance of the TcpClientChannel class with the specified configuration properties and sink.

TcpClientChannel(String, IClientChannelSinkProvider) TcpClientChannel(String, IClientChannelSinkProvider) TcpClientChannel(String, IClientChannelSinkProvider) TcpClientChannel(String, IClientChannelSinkProvider)

Inizializza una nuova istanza della classe TcpClientChannel con il nome e il sink specificato.Initializes a new instance of the TcpClientChannel class with the specified name and sink.

Proprietà

ChannelName ChannelName ChannelName ChannelName

Ottiene il nome del canale corrente.Gets the name of the current channel.

ChannelPriority ChannelPriority ChannelPriority ChannelPriority

Ottiene la priorità del canale corrente.Gets the priority of the current channel.

IsSecured IsSecured IsSecured IsSecured

Ottiene o imposta un valore booleano che indica se il canale corrente è protetto.Gets or sets a Boolean value that indicates whether the current channel is secure

Metodi

CreateMessageSink(String, Object, String) CreateMessageSink(String, Object, String) CreateMessageSink(String, Object, String) CreateMessageSink(String, Object, String)

Restituisce un sink dei messaggi del canale che invia messaggi all'URL o all'oggetto dati del canale specificato.Returns a channel message sink that delivers messages to the specified URL or channel data object.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Inherited from Object)
Parse(String, String) Parse(String, String) Parse(String, String) Parse(String, String)

Estrae dall'URL specificato l'URI del canale e quello dell'oggetto remoto conosciuto.Extracts the channel URI and the remote well-known object URI from the specified URL.

ToString() ToString() ToString() ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Inherited from Object)

Si applica a