Использование ТСР-каналов
Использование ТСР-каналов
В настоящий момент ваш удаленный объект доступен через сетевой протокол HTTP. Как уже упоминалось выше, этот протокол вполне совместим с брандмауэром, но генерируемые при этом пакеты SOAP немного "раздуты" (по причине представления данных в формате XML). Чтобы уменьшить сетевой трафик, можно изменить компоновочные блоки клиента и сервера так, чтобы в них использовался TCP-канал и, следовательно, тип BinaryFormatter. Вот подходящая модификация компоновочного блока сервера.
Замечание. Для файлов с определениями объектов, доступных по TCP-каналам о заданным URI, чаще всего (но не обязательно) используется расширение *.rem (от remote – удаленный).
// Корректировки для сервера.
using System.Runtime.Remoting.Channels.Tcp;
…
static void Main(string[] args) {
…
// Создание нового TcpChannel
TcpChannel с = new TcpChannel(32469);
ChannelServises.RegisterChannel(c);
// Регистрация WKO-объекта в режиме синглета.
RemotingConfiguration.RegisterWellKnownServiceType(typeof(SimpleRemotingAsm.RemoteMessageObject), "RemoteMsgObj.rem", WellKnownObjectMode.SingleCall);
Console.ReadLine();
}
Здесь в слое удаленного взаимодействия .NET регистрируется тип System. Runtime.Remoting.Channels.Tcp.TcpChannel. Кроме того, изменен URI-объект (теперь для него задано более общее имя RemoteMsgObj.rem вместо *.soap, что явно указывало на использование SOAP). Модификация приложения клиента так же проста.
// Корректировки для клиента.
using System.Runtime.Remoting.Channels.Тcр;
…
static void Main(string[] args) {
…
// Создание нового TcpChannel
TcpChannel с = new TcpChannel();
ChannelServices.RegisterChannel(c);
// Получение агента для удаленного объекта.
object remoteObj = Activator.GetObject(typeof(SimpleRemotingAsm.RemoteMessageObject), "tcp://localhost:32469/RemoteMsgObj.rem");
// Использование объекта.
RemoteMessageObject simple = (RemoteMessageObject)remoteObj;
simple.DisplayMessage("Привет от клиента!");
Console.WriteLine("Сервер говорит: {0}", simple.ReturnMessage());
Console.ReadLine();
}
Единственным заслуживающим внимания моментом здесь является то, что URL активизации клиента теперь должен содержать признак канала tcp://, а не http://. Во всем остальном программная логика здесь оказывается идентичной программной логике HttpChannel,
Исходный код. Проекты TCPSimpleRemoteObjectServer и TCPSimpleRemoteObjectClient размещены в подкаталоге, соответствующем главе 18 (оба эти проекта используют созданный выше компоновочный блок SimpleRemotingAsm.dll).
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
9.3.1.2. Буферирование каналов
9.3.1.2. Буферирование каналов Каналы буферируют свои данные, что означает, что записанные в канал данные хранятся ядром до тех пор, пока не будут прочитаны. Однако, канал может содержать лишь такое-то количество записанных, но еще не прочитанных данных. Мы можем называть
Использование именованных каналов
Использование именованных каналов Функция CreateNamedPipe создает первый экземпляр именованного канала и возвращает дескриптор. При вызове этой функции указывается также максимально допустимое количество экземпляров каналов, а следовательно, и количество клиентов,
Создание именованных каналов
Создание именованных каналов Серверами именованных каналов могут быть только системы на основе Windows NT (как обычно, здесь имеются в виду версия 4.0 и последующие); системы на базе Windows 9x могут выступать только в роли клиентов.Прототип функции CreateNamedPipe представлен ниже. HANDLE
11.6. Создание неименованных каналов
11.6. Создание неименованных каналов Неименованные каналы подобны именованным, но они в файловой системе не существуют. Они не имеют путевых имен, ассоциированных с ними, и все они и их следы исчезают после того, как последний файловый дескриптор, ссылающийся на них,
5.12.4 Закрытие каналов
5.12.4 Закрытие каналов При закрытии канала процесс выполняет ту же самую процедуру, что и при закрытии обычного файла, за исключением того, что ядро, прежде чем освободить индекс канала, выполняет специальную обработку. Оно уменьшает количество процессов чтения из канала
Банки каналов
Банки каналов Банк каналов - это, грубо говоря, устройство, позволяющее разделить цифровую линию на несколько аналоговых линий (и наоборот). Выражаясь точнее, банк каналов обеспечивает возможность объединять аналоговые телефоны и линии в систему через линию T1. На рис. 2.2
Использование каналов RSS
Использование каналов RSS Каналы RSS – это формат данных, предоставляющий пользователям средства поддержки содержимого веб-узла в актуальном состоянии. Первоначально этот формат данных имел название RDF (Resource Description Framework) Site Summary, а затем получил название Rich Site Summary. Сегодня
Флаги каналов
Флаги каналов Теперь перечислим флаги, которые могут иметь каналы.? R (Registered, Зарегистрированный) — обозначает зарегистрированный канал. Если канал не имеет этого флага, то он автоматически удаляется с сервера после того, как все пользователи его покинут. В противном
5.4.1. Создание каналов
5.4.1. Создание каналов Канал создается с помощью функции pipe(). Ей необходимо передать массив из двух целых чисел. В элементе с индексом 0 функция сохраняет дескриптор файла, соответствующего выходному концу канала, а в элементе с индексом 1 сохраняется дескриптор файла,
Список каналов
Список каналов Список каналов – одна из самых важных частей программы, так как работа со списком во многом определяет, насколько удобно будет работать с приложением. Необходимо отметить, что в программе FlyDS работа со списком реализована с помощью контекстного меню,
Список каналов
Список каналов Познакомимся с основным инструментом программы, который будет использоваться постоянно, – это список каналов, где будут храниться все каналы, распределенные по категориям. Правильно настроенный список каналов – залог комфортной работы.Чтобы вызвать
Список каналов
Список каналов Прежде всего обратимся к такому важному инструменту, как список каналов, ведь пока не настроены каналы, невозможен просмотр. Список каналов находится в левой части окна программы (рис. 5.15), причем каналы располагаются друг под другом, не подразделяясь на
Формирование списка каналов
Формирование списка каналов Начальный этап настройки программы уже был изучен выше, теперь можно искать спутниковые каналы и формировать список. Если каналов будет очень много, то их будет удобнее разделить на тематические группы, а также создать небольшую группу,
Просмотр веб-каналов
Просмотр веб-каналов Многие сайты в Интернете регулярно обновляются, и чтобы узнать последние новости, пользователям приходится регулярно открывать соответствующие вебстраницы и просматривать их содержимое. Однако есть и более удобный способ слежения за новостями –