TcpChannel Costruttori

Definizione

Inizializza una nuova istanza della classe TcpChannel.

Overload

Nome Descrizione
TcpChannel()

Inizializza una nuova istanza della TcpChannel classe , attivando solo un canale client e non un canale server.

TcpChannel(Int32)

Inizializza una nuova istanza della TcpChannel classe con un canale server in ascolto sulla porta specificata.

TcpChannel(IDictionary, IClientChannelSinkProvider, IServerChannelSinkProvider)

Inizializza una nuova istanza della TcpChannel classe con le proprietà e i sink di configurazione specificati.

TcpChannel()

Inizializza una nuova istanza della TcpChannel classe , attivando solo un canale client e non un canale server.

public:
 TcpChannel();
public TcpChannel();
Public Sub New ()

Esempio

Nell'esempio di codice seguente viene illustrato come usare questo costruttore.

// Create the channel.
TcpChannel^ clientChannel = gcnew TcpChannel();
// Create the channel.
TcpChannel clientChannel = new TcpChannel();

Commenti

Il costruttore senza parametri inizializza tutti i campi con i relativi valori predefiniti. Se viene usato il costruttore senza parametri, il canale funziona solo come canale client e non è in ascolto su alcuna porta.

Si applica a

TcpChannel(Int32)

Inizializza una nuova istanza della TcpChannel classe con un canale server in ascolto sulla porta specificata.

public:
 TcpChannel(int port);
public TcpChannel(int port);
new System.Runtime.Remoting.Channels.Tcp.TcpChannel : int -> System.Runtime.Remoting.Channels.Tcp.TcpChannel
Public Sub New (port As Integer)

Parametri

port
Int32

Porta in cui il canale del server è in ascolto.

Esempio

Nell'esempio di codice seguente viene illustrato l'uso di questo metodo. Per richiedere l'assegnazione dinamica di una porta disponibile, impostare il port parametro su zero.

// Registers the server and waits until the user hits enter.
TcpChannel^ chan = gcnew TcpChannel( 8084 );
ChannelServices::RegisterChannel( chan );

RemotingConfiguration::RegisterWellKnownServiceType(
   Type::GetType( "HelloServer,server" ),
   "SayHello",
   WellKnownObjectMode::SingleCall );
System::Console::WriteLine( L"Hit <enter> to exit..." );
System::Console::ReadLine();
// Registers the server and waits until the user hits enter.
TcpChannel chan = new TcpChannel(8084);
ChannelServices.RegisterChannel(chan);

RemotingConfiguration.RegisterWellKnownServiceType(Type.GetType("HelloServer,server"),
                                                  "SayHello",
                                                   WellKnownObjectMode.SingleCall);
System.Console.WriteLine("Hit <enter> to exit...");
System.Console.ReadLine();
' Registers the server and waits until the user hits enter.
Dim chan As New TcpChannel(8084)
ChannelServices.RegisterChannel(chan)

RemotingConfiguration.RegisterWellKnownServiceType(Type.GetType("HelloServer,server"), "SayHello", WellKnownObjectMode.SingleCall)
System.Console.WriteLine("Hit <enter> to exit...")
System.Console.ReadLine()

Commenti

Per richiedere che il sistema di comunicazione remota scelga una porta aperta per conto dell'utente, specificare la porta 0 (zero). Verrà creata un'istanza TcpServerChannel per l'ascolto delle richieste sulla porta assegnata dinamicamente. Questa operazione viene in genere eseguita sul client per assicurarsi che un oggetto TcpServerChannel sia in ascolto dei metodi di callback.

Se 0 viene passato al costruttore , viene creata un'istanza TcpChannel di per usare una porta libera.

Si applica a

TcpChannel(IDictionary, IClientChannelSinkProvider, IServerChannelSinkProvider)

Inizializza una nuova istanza della TcpChannel classe con le proprietà e i sink di configurazione specificati.

public:
 TcpChannel(System::Collections::IDictionary ^ properties, System::Runtime::Remoting::Channels::IClientChannelSinkProvider ^ clientSinkProvider, System::Runtime::Remoting::Channels::IServerChannelSinkProvider ^ serverSinkProvider);
public TcpChannel(System.Collections.IDictionary properties, System.Runtime.Remoting.Channels.IClientChannelSinkProvider clientSinkProvider, System.Runtime.Remoting.Channels.IServerChannelSinkProvider serverSinkProvider);
new System.Runtime.Remoting.Channels.Tcp.TcpChannel : System.Collections.IDictionary * System.Runtime.Remoting.Channels.IClientChannelSinkProvider * System.Runtime.Remoting.Channels.IServerChannelSinkProvider -> System.Runtime.Remoting.Channels.Tcp.TcpChannel
Public Sub New (properties As IDictionary, clientSinkProvider As IClientChannelSinkProvider, serverSinkProvider As IServerChannelSinkProvider)

Parametri

properties
IDictionary

Raccolta IDictionary che specifica i valori per le proprietà di configurazione da utilizzare dai canali client e server.

clientSinkProvider
IClientChannelSinkProvider

Implementazione IClientChannelSinkProvider da usare dal canale client.

serverSinkProvider
IServerChannelSinkProvider

Implementazione IServerChannelSinkProvider da utilizzare dal canale del server.

Eccezioni

Una proprietà del canale specificata è stata formattata in modo non corretto.

Esempio

Nell'esempio di codice seguente viene illustrato come usare questo costruttore.

// Specify the properties for the server channel.
System::Collections::IDictionary^ dict = gcnew System::Collections::Hashtable;
dict[ "port" ] = 9090;
dict[ "authenticationMode" ] = "IdentifyCallers";

// Set up the server channel.
TcpChannel^ serverChannel = gcnew TcpChannel( dict,nullptr,nullptr );
ChannelServices::RegisterChannel( serverChannel );
// Specify the properties for the server channel.
System.Collections.IDictionary dict =
    new System.Collections.Hashtable();
dict["port"] = 9090;
dict["authenticationMode"] = "IdentifyCallers";

// Set up the server channel.
TcpChannel serverChannel = new TcpChannel(dict, null, null);
ChannelServices.RegisterChannel(serverChannel);

Commenti

Per altre informazioni sulle proprietà di configurazione del canale, vedere Proprietà di configurazione del canale e del formattatore.

I sink di canale forniscono un punto di plug-in che consente l'accesso ai messaggi sottostanti che passano attraverso il canale, nonché il flusso usato dal meccanismo di trasporto per inviare messaggi a un oggetto remoto. I sink di canale sono anche responsabili del trasporto di messaggi tra il client e il server. I sink di canale vengono collegati in una catena e tutti i messaggi del canale passano attraverso questa catena di sink prima che il messaggio venga infine serializzato e trasportato. Se non è necessaria la funzionalità sink, impostare i clientSinkProvider parametri e serverSinkProvider su null.

Vedi anche

Si applica a