TcpServerChannel Класс

Определение

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

public class TcpServerChannel : System.Runtime.Remoting.Channels.IChannelReceiver
public class TcpServerChannel : System.Runtime.Remoting.Channels.IChannelReceiver, System.Runtime.Remoting.Channels.ISecurableChannel
Наследование
TcpServerChannel
Реализации

Примеры

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

using System;
using System.Runtime.Remoting;

public class Remotable : MarshalByRefObject
{

    private int callCount = 0;

    public int GetCount()
    {
        callCount++;
        return(callCount);
    }
}

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

using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;

public class Server
{
    public static void Main()
    {

        // Set up a server channel.
        TcpServerChannel serverChannel = new TcpServerChannel(9090);
        ChannelServices.RegisterChannel(serverChannel);

        // Expose an object for remote calls.
        RemotingConfiguration.RegisterWellKnownServiceType(
            typeof(Remotable), "Remotable.rem", WellKnownObjectMode.Singleton
        );

        // Show the name and priority of the channel.
        Console.WriteLine("Channel Name: {0}", serverChannel.ChannelName);
        Console.WriteLine("Channel Priority: {0}", serverChannel.ChannelPriority);

        // Show the URIs associated with the channel.
        ChannelDataStore data = (ChannelDataStore) serverChannel.ChannelData;
        foreach (string uri in data.ChannelUris)
        {
            Console.WriteLine(uri);
        }

        // Wait for method calls.
        Console.WriteLine("Listening...");
        Console.ReadLine();
    }
}

Комментарии

Важно!

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

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

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

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

Экземпляр TcpServerChannel принимает сообщения, сериализованные в двоичном формате или формате SOAP.

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

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

TcpServerChannel(IDictionary, IServerChannelSinkProvider)

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

TcpServerChannel(IDictionary, IServerChannelSinkProvider, IAuthorizeRemotingConnection)

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

TcpServerChannel(Int32)

Инициализирует новый экземпляр класса TcpServerChannel, который ожидает передачу данных для указанного порта.

TcpServerChannel(String, Int32)

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

TcpServerChannel(String, Int32, IServerChannelSinkProvider)

Инициализирует новый экземпляр класса TcpServerChannel с заданным именем, который ожидает передачу данных для указанного порта и использует указанный приемник.

Свойства

ChannelData

Получает данные, относящиеся к каналу.

ChannelName

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

ChannelPriority

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

IsSecured

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

Методы

Equals(Object)

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

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

Возвращает универсальный код ресурса (URI) текущего канала.

GetHashCode()

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

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

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

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

Возвращает массив всех URL-адресов объекта с указанным универсальным кодом ресурса (URI), находящимся в текущем экземпляре TcpChannel.

MemberwiseClone()

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

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

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

StartListening(Object)

Указывает текущему каналу начать прослушивание канала после вызова метода StopListening(Object) для остановки прослушивания канала.

StopListening(Object)

Дает текущему каналу команду на прекращение отслеживания запросов.

ToString()

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

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

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

Продукт Версии
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1