Condividi tramite


TcpChannel Costruttori

Definizione

Inizializza una nuova istanza della classe TcpChannel.

Overload

TcpChannel()

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

TcpChannel(Int32)

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

TcpChannel(IDictionary, IClientChannelSinkProvider, IServerChannelSinkProvider)

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

TcpChannel()

Inizializza una nuova istanza della classe TcpChannel attivando solo un canale del client e non un canale del 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 nei 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 classe TcpChannel con un canale server in attesa 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 su cui il canale 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 nel 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 classe TcpChannel con le proprietà di configurazione e i sink 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

Insieme IDictionary che specifica i valori per le proprietà di configurazione che verranno utilizzate dai canali client e server.

clientSinkProvider
IClientChannelSinkProvider

Implementazione di IClientChannelSinkProvider che verrà utilizzata dal canale client.

serverSinkProvider
IServerChannelSinkProvider

Implementazione di IServerChannelSinkProvider che verrà utilizzata dal canale server.

Eccezioni

Il formato di una proprietà fornita del canale non era 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 e 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