TcpListener | Позволяет ожидать входящие запросы соединения. |
UdpClient | Позволяет создать соединения для клиентов UDP. (UDP является альтернативным протоколом для TCP, но используется значительно менее широко, в основном в локальных сетях.) |
Заключение
В этой главе очень кратко были рассмотрены некоторые из базовых классов .NET, которые имеют дело с открытием клиентских соединений в сети и Интернете, а также отправкой запросов и получением ответов от серверов. Наиболее очевидным результатом этого будет получение страниц HTML.
Классы .NET во время написания этой книги по общему признанию слабо охватывали своей поддержкой многие распространенные протоколы, и примечательно, что даже для выполнения такой базовой задачи, как вывод страницы HTML пришлось обращаться к унаследованному элементу управления ActiveX WebBrowser
. (Необходимо сказать, что это не является таким уж большим недостатком, поскольку возможность взаимодействия .NET COM и Visual Studio.NET делают использование подобных элементов управления почти таким же простым, как использование собственных элементов управления Windows Forms). Тем не менее доступные классы .NET делают выполнение некоторых важных задач простыми по своей сути, это особенно справедливо для процесса помещения страницы Web в поток или файл.
Главa 23
В главе 17 были рассмотрены службы Web, которые позволяют вызывать объекты на удаленном сервере. Использование сервера Web и протокола SOAP не всегда достаточно эффективно для приложений интранет. Протокол SOAP означает большие накладные расходы при пересылке большого объема данных. Для быстрых решений интранет можно использовать просто сокеты, как это делалось в предыдущей главе. В 'старом мире', как известно, программы писали с использованием DCOM. С помощью DCOM можно вызывать методы на объектах, выполняющихся на сервере. Программная модель всегда является одной и той же, если объекты применяются на сервере или на клиенте.
Без DCOM мы вынуждены иметь дело с портами и сокетами, уделяя внимание целевым платформам в связи с возможным различным представлением данных, и создавать специальные протоколы, в которых сообщения посылаются сокету, чтобы, в конце концов, вызвать некоторые методы. DCOM обрабатывает все эти вопросы для программиста.
Заменой DCOM является .NET Remoting. В противоположность DCOM .NET Remoting может использоваться также в решениях Интернета, а для них DCOM недостаточно гибок и эффективен. С помощью .NET Remoting можно адаптировать и расширить любую часть архитектуры, поэтому подходит практически для любого удаленного сценария. В этой главе будут рассмотрены:
□ Архитектура .NET Remoting
□ Каналы, сообщения, приемники
□ Создание клиентов и серверов
□ Удаленные свойства с конфигурационными файлами
□ Возможности расширения рабочей среды
□ Использование возможностей удаленного управления в приложениях ASP.NET
Прежде всего выясним, что такое .NET Remoting.
Что такое .NET Remoting
Два выражения могут описать .NET Remoting: Web Services Anywhere и CLR Object Remoting. Рассмотрим, что это означает.
Web Services Anywhere
Выражение Web Services Anywhere используется в .NET Remoting и означает, что с помощью .NET Remoting службы Web могут применяться в любом приложении с помощью любого транспорта, используя какое угодно кодирование полезной нагрузки. .NET Remoting является предельно гибкой архитектурой.
Совместное использование SOAP и HTTP — только способ вызова удаленных объектов. Транспортный канал является подключаемым и может заменяться. Мы получаем каналы HTTP и TCP, представленные классами HttpChannel
и TcpChannel
. Мы вправе создать транспортные каналы для использования UDP, IPX или механизма общей памяти — выбор полностью зависит от программиста.
Кодирование полезной нагрузки также можно заменить. Компания Microsoft предоставляет SOAP и механизмы двоичного кодирования. Можно использовать средство форматирования (форматтер) SOAP с помощью канала НТTР, но и использовать HTTP, применяя двоичный форматтер. Конечно оба эти форматтера можно использоватъ также с каналом TCP.
.NET Remoting не только делает возможным использование служб Web в каждом приложении .NET, но позволяет также
Термин подключаемый (pluggable) часто используется в .NET Remoting.
Подключаемый означает, что определенная часть проекта разработана так, что она может заменяться специальной реализацией.
CLR Object Remoting
CLR Object Remoting везде располагается поверх служб Web. CLR Object Remoting