Udostępnij za pośrednictwem


TcpChannel Konstruktory

Definicja

Inicjuje nowe wystąpienie klasy TcpChannel.

Przeciążenia

TcpChannel()

Inicjuje TcpChannel nowe wystąpienie klasy, aktywując tylko kanał klienta, a nie kanał serwera.

TcpChannel(Int32)

Inicjuje TcpChannel nowe wystąpienie klasy przy użyciu kanału serwera, który nasłuchuje na określonym porcie.

TcpChannel(IDictionary, IClientChannelSinkProvider, IServerChannelSinkProvider)

Inicjuje TcpChannel nowe wystąpienie klasy z określonymi właściwościami konfiguracji i ujściami.

TcpChannel()

Inicjuje TcpChannel nowe wystąpienie klasy, aktywując tylko kanał klienta, a nie kanał serwera.

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

Przykłady

W poniższym przykładzie kodu pokazano, jak używać tego konstruktora.

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

Uwagi

Konstruktor bez parametrów inicjuje wszystkie pola do wartości domyślnych. Jeśli jest używany konstruktor bez parametrów, kanał działa tylko jako kanał klienta i nie nasłuchuje na żadnych portach.

Dotyczy

TcpChannel(Int32)

Inicjuje TcpChannel nowe wystąpienie klasy przy użyciu kanału serwera, który nasłuchuje na określonym porcie.

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)

Parametry

port
Int32

Port, na którym nasłuchuje kanał serwera.

Przykłady

Poniższy przykład kodu pokazuje użycie tej metody. Aby zażądać dynamicznego przypisania dostępnego portu, ustaw port parametr na 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()

Uwagi

Aby zażądać, aby system komunikacji wirtualnej wybrał otwarty port w Twoim imieniu, określ port 0 (zero). Spowoduje to utworzenie TcpServerChannel wystąpienia do nasłuchiwania żądań na dynamicznie przypisanym porcie. Zazwyczaj odbywa się to na kliencie, aby upewnić się, że nasłuchuje TcpServerChannel metod wywołania zwrotnego.

Jeśli wartość 0 zostanie przekazana do konstruktora, TcpChannel zostanie utworzone wystąpienie, aby użyć wolnego portu.

Dotyczy

TcpChannel(IDictionary, IClientChannelSinkProvider, IServerChannelSinkProvider)

Inicjuje TcpChannel nowe wystąpienie klasy z określonymi właściwościami konfiguracji i ujściami.

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)

Parametry

properties
IDictionary

IDictionary Kolekcja określająca wartości właściwości konfiguracji, które mają być używane przez kanały klienta i serwera.

clientSinkProvider
IClientChannelSinkProvider

Implementacja IClientChannelSinkProvider do użycia przez kanał klienta.

serverSinkProvider
IServerChannelSinkProvider

Implementacja IServerChannelSinkProvider do użycia przez kanał serwera.

Wyjątki

Podana właściwość kanału została nieprawidłowo sformatowana.

Przykłady

W poniższym przykładzie kodu pokazano, jak używać tego konstruktora.

// 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);

Uwagi

Aby uzyskać więcej informacji na temat właściwości konfiguracji kanału, zobacz Właściwości konfiguracji kanału i formatnika.

Ujścia kanału zapewniają punkt wtyczki, który umożliwia dostęp do źródłowych komunikatów przepływających przez kanał, a także strumienia używanego przez mechanizm transportu do wysyłania komunikatów do obiektu zdalnego. Ujścia kanału są również odpowiedzialne za transport komunikatów między klientem a serwerem. Ujścia kanału są połączone ze sobą w łańcuchu, a wszystkie komunikaty kanału przepływają przez ten łańcuch ujść, zanim komunikat zostanie ostatecznie serializowany i transportowany. Jeśli nie potrzebujesz funkcji ujścia, ustaw clientSinkProvider parametr i serverSinkProvider na null.

Zobacz też

Dotyczy