Архитектура Microsoft Windows для разработчиков


Занятие 4. Разработка сетевых приложений

(Продолжительность занятия 20 минут)

Разработчикам сетевых приложений доступны несколько интерфейсов — от интерфейса нижнего уровня Windows Sockets до специально разработанных элементов управления ActiveX (например, Web Browser). Это занятие посвящено интерфейсам для создания сетевых приложений, разработанным компанией Microsoft.

 
Изучив материал этого занятия, Вы сможете:

  • описать разработанные компанией Microsoft интерфейсы для создания сетевых приложений;
  • создать пример простой программы просмотра Web.

Windows Sockets

Воспользоваться всеми возможностями протокола TCP/IP Вам поможет интерфейс Windows Sockets. Он был разработан как интерфейс для языка С, поэтому для вызова его функций из программы Visual Basic придется создать необходимые операторы Declare.

Спецификация Windows Sockets определяет сетевой интерфейс прикладного программирования для Microsoft Windows. Он поддерживает как стандартные со-кеты, так и набор специфических расширений, позволяющих разработчику обратиться к механизму сообщений Windows.

Спецификация Windows Sockets предоставляет разработчикам приложении и поставщикам сетевого программного обеспечения единый интерфейс прикладного программирования.

API WinInet

Win32 Internet (Winlnet) API обеспечивает автономным приложениям доступ к стандартным протоколам Интернета — Gopher, FTP и HTTP — путем абстрагирования протоколов в виде интерфейса высокого уровня, привычного создателям приложений Win32. Функции Winlnet API можно вызывать из программ практически на любом языке, включая Visual Basic. Чтобы работать с этим интерфейсом, не нужно превосходно разбираться в TCP/IP, Windows Sockets или HTTP. Более того, поскольку он абстрагирован от конкретной реализации, Вам не придется переписывать приложения по мере эволюции протоколов — достаточно лишь обновить библиотеку интерфейса Winlnet.

Преимущества API Winlnet

  • Не нужно знать подробности устройства и работы TCP/IP и Windows Sockets.

    API Winlnet реализует основные функции протоколов Интернета, поэтому Вам не придется писать код Windows Sockets или изучать протоколы TCP/IP.

  • Не нужно изучать протоколы Интернета.

    Хотя концепции, положенные в основу таких протоколов Интернета, как FTP и HTTP, просты, их реализация может оказаться довольно сложной. Например, серверы FTP возвращают списки каталогов в виде ASCII-файлов, для разбора которых нужно знать их формат. Средствами инкапсуляции API WinInet решает проблему просмотра каталогов FTP-серверов раз и навсегда для всех приложений, использующих протокол FTP. Этот подход, в частности, обеспечивает возможность разработки приложений в едином стиле.

  • Постоянный, в отличие от постоянно меняющихся и эволюционирующих протоколов, набор функций.

    Вам не придется всякий раз обновлять приложение при изменении используемого протокола. Кроме того, даже новейшие протоколы (например, HTTP I.I) могут быть реализованы без изменения приложения.

  • Стандарт функций Win32.

    Интернет-функции Win32 аналогичны традиционным средствам Win32 для обработки ошибок и работы с буферами. Если Вы знакомы с набором функций Win32, то обнаружите, что функции API Winlnet возвращают информацию в знакомом формате.

  • Полный доступ к возможностям протоколов Интернета.

    Функции API Winlnet обеспечивают приложениям доступ к дополнительным возможностям протоколов Интернета.

  • Высокопроизводительные многопоточные приложения Интернета.

    Функции API Winlnet полностью многопоточны и реентерабельны, то есть обеспечивают одновременный вызов функций из разных потоков без побочных эффектов. Функции API Winlnet самостоятельно выполняют всю необходимую синхронизацию.

  • Встроенная поддержка кэширования.

    Функции API Winlnet обеспечивают кэширование всех протоколов, поэтому Вы сможете сосредоточиться на обработке данных, не заботясь об управлении кэшем.

Функции API Winlnet позволяют разрабатывать клиентские приложения для Интернета, но они не предназначены для разработки серверных приложений. Дело в том, что в целях достижения максимальной производительности сервер должен контролировать доступ к протоколу и операции ввода/вывода. Кроме того, функции API Winlnet не обеспечивают доступа к серверам почты и новостей.

Сетевые элементы управления ActiveX

Предназначенные для Интернета управляющие элементы ActiveX упрощают разработку сетевых приложений. Здесь приведен лишь краткий обзор элементов ActiveX — их детальному обсуждению посвящена глава 8.

ActiveX-элементы для Интернета

Элемент управления Microsoft Internet Transfer Control разработан как ActiveX-обо-лочка для интерфейса Windows Sockets. Он поддерживает протоколы HTTP и FTP, упрощая разработку приложений для Интернета. Например, средствами протокола HTTP Ваше приложение может подключиться к серверу WWW для загрузки HTML-документов.

Протокол FTP позволяет регистрироваться на FTP-серверах для копирования файлов с сервера на компьютер-клиент и обратно. Свойства управляющего элемента UserName и Password обеспечивают регистрацию на серверах, требующих аутентификации. Стандартные команды FTP, такие как CD и GET, реализованы при помощи метода Execute.

ActiveX-элемент Web Browser

Элемент управления Web Browser позволяет снабдить приложение функциями программы просмотра Web. Он автоматически отображает текст и графику с Web-страницы, интерпретируя команды HTML.

Создание программы просмотра Web

В этом упражнении Вы с помощью Visual Basic и элемента управления Web Browser Control создадите простую программу просмотра Web.

> Добавление в проект формы программы просмотра

  1. Запустите Microsoft Visual Basic и создайте новый проект типа Standard EXE.
  2. Щелкните правой кнопкой мыши Project Explorer и выберите команду Form в меню Add.
  3. На вкладке Tab выберите Browser и щелкните кнопку Open.
  4. Присвойте свойству MDIChild формы frmBrowser значение False.

> Выбор стартового объекта проекта

  1. В меню Project щелкните команду Project1 Properties.
  2. В окне Startup Object выберите frmBrowser и щелкните кнопку ОК.
  3. Запустите приложение и откройте какую-нибудь Web-страницу на Вашем компьютере (например, localhost).
  4. Остановите приложение и изучите код обработки щелчков кнопок панели инструментов.

Резюме

Интерфейс Windows Sockets обеспечивает разработчикам сетевых приложении доступ к функциям протокола TCP/IP. Другой интерфейс — WinInet — реализует доступ к функциям популярных протоколов HTTP и FTP. Для быстрой разработки приложений идеально подходят элементы управления ActiveX, обеспечивающие нужные функции без дополнительного программирования.