Занятие 4. Разработка сетевых приложений
(Продолжительность занятия 20 минут)
Разработчикам сетевых приложений доступны несколько интерфейсов — от интерфейса нижнего уровня Windows Sockets до специально разработанных элементов управления ActiveX (например, Web Browser). Это занятие посвящено интерфейсам для создания сетевых приложений, разработанным компанией Microsoft.
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
API Winlnet реализует основные функции протоколов Интернета, поэтому Вам не придется писать код Windows Sockets или изучать протоколы TCP/IP.
Хотя концепции, положенные в основу таких протоколов Интернета, как FTP и HTTP, просты, их реализация может оказаться довольно сложной. Например, серверы FTP возвращают списки каталогов в виде ASCII-файлов, для разбора которых нужно знать их формат. Средствами инкапсуляции API WinInet решает проблему просмотра каталогов FTP-серверов раз и навсегда для всех приложений, использующих протокол FTP. Этот подход, в частности, обеспечивает возможность разработки приложений в едином стиле.
Вам не придется всякий раз обновлять приложение при изменении используемого протокола. Кроме того, даже новейшие протоколы (например, HTTP I.I) могут быть реализованы без изменения приложения.
Интернет-функции 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.
> Добавление в проект формы программы просмотра
> Выбор стартового объекта проекта
Резюме
Интерфейс Windows Sockets обеспечивает разработчикам сетевых приложении доступ к функциям протокола TCP/IP. Другой интерфейс — WinInet — реализует доступ к функциям популярных протоколов HTTP и FTP. Для быстрой разработки приложений идеально подходят элементы управления ActiveX, обеспечивающие нужные функции без дополнительного программирования.