Поделиться через


TcpClientChannel Класс

Определение

Для удаленных вызовов реализует канал клиента, в котором для передачи сообщений используется протокол TCP.

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
Наследование
TcpClientChannel
Реализации

Примеры

В следующем примере кода показано использование класса для TcpClientChannel вызова удаленного типа.

#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() );
    }
}

Удаленный тип, вызываемый в приведенном выше примере, определяется в следующем коде.

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

Комментарии

Важно!

Вызов методов этого класса для ненадежных данных представляет угрозу безопасности. Вызывайте методы класса только для надежных данных. Дополнительные сведения см. в разделе Проверка всех входных данных.

Каналы передают сообщения через границы удаленного взаимодействия (например, компьютеры или домены приложений). Класс TcpClientChannel транспортирует сообщения по протоколу TCP.

Каналы используются инфраструктурой удаленного взаимодействия платформа .NET Framework для передачи удаленных вызовов. Когда клиент выполняет вызов удаленного объекта, вызов сериализуется в сообщение, которое отправляется клиентским каналом и принимается каналом сервера. Затем он десериализируется и обрабатывается. Все возвращаемые значения передаются каналом сервера и принимаются клиентским каналом.

Чтобы выполнить дополнительную обработку сообщений на стороне клиента, можно указать реализацию IClientChannelSinkProvider интерфейса, через который передаются все сообщения, обработанные TcpClientChannel .

По умолчанию TcpClientChannel класс использует двоичный форматировщик для сериализации всех сообщений.

Объект TcpClientChannel имеет связанные свойства конфигурации, которые можно задать во время выполнения в файле конфигурации (путем вызова статического RemotingConfiguration.Configure метода) или программно (путем передачи IDictionary коллекции конструктору TcpClientChannel ). Список этих свойств конфигурации см. в документации по TcpClientChannel.

Конструкторы

TcpClientChannel()

Инициализирует новый экземпляр класса TcpClientChannel.

TcpClientChannel(IDictionary, IClientChannelSinkProvider)

Инициализирует новый экземпляр класса TcpClientChannel с указанными свойствами конфигурации и приемником.

TcpClientChannel(String, IClientChannelSinkProvider)

Инициализирует новый экземпляр класса TcpClientChannel с указанным именем и приемником.

Свойства

ChannelName

Получает имя текущего канала.

ChannelPriority

Получает приоритет текущего канала.

IsSecured

Возвращает или задает логическое значение, позволяющее определить, является ли текущий канал безопасным.

Методы

CreateMessageSink(String, Object, String)

Возвращает приемник сообщений канала, который доставляет сообщения объекту данных канала или по указанному URL-адресу.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
Parse(String, String)

Выделяет универсальный код ресурса (URI) канала и универсальный код ресурса (URI) известного удаленного объекта из указанного URL-адреса.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к