Шаг 34.
Создание Internet-приложений в среде Delphi. Элементы управления страницы FastNet

    На этом шаге мы рассмотрим элементы управления страницы FastNet.

    На этой странице собраны компоненты, предназначенные для быстрой разработки приложений Интернет и интранет, использующих ту или иную службу, или сервис Интернет, или протокол (HTTP, UDP) и работающих по протоколу TCP/IP. Все эти компоненты перечислены в таблице 1.

    Компоненты TNMURL и TNMUUProcessor выполняют утилитарные задачи: первый преобразует строку в формате URL в "обычную" строку символов и обратно; второй - кодирует и декодирует данные по стандарту MIME и UUEncode. Эти компоненты выполняют вспомогательную роль в приложениях.

    В конце панели FastNet представлены два компонента: TPowersock и TNMGeneralServer. Первый компонент инкапсулирует API сокетов Windows и является базовым классом для большинства компонентов страницы FastNet за исключением компонентов TNMUDP, TNMURL и TNMUUProcessor. Его можно использовать для создания элементов управления, использующих другие известные протоколы, или для создания своих собственных протоколов.

    Компонент TNMGeneralServer используется для создания серверов TCP/IP общего назначения в качестве базового класса для многопотоковых серверов Интернет или интранет.

    Для использования этих компонентов необходим 32-х битный стек протоколов TCP/IP (библиотека WSOCK32.DLL), которая включена в операционные системы Windows 95, 98, 2000, Windows NT и Windows XP.

    Компонент TStatusBar - строка состояния, часто используется в различных программах. Если во время разработки программы присваивайте свойству SimplePanel этого компонента значение True. В этом случае в строке состояния можно будет выводить только одну строку, которая должна помещаться в свойство SimpleText. Если свойству SimplePanel присвоить значение False, то в строке состояния можно завести несколько панелей сообщений и в каждую выводить свой текст. Для этой цели используется свойство Panels. При его выборе загружается редактор свойств коллекции объектов, в котором можно создать нужное количество панелей и настроить их внешний вид.

    Поскольку компонент TPowersock является базовым для большинства компонентов панели FastNet, то многие свойства, методы и события этих компонентов совпадают.

    Из общих свойств всех компонентов можно отметить свойства HostPort и TimeOut. В свойстве Host указывается имя или IP-адрес удаленного компьютера, с которым устанавливается связь. В свойстве Port указывается номер порта протокола TCP/IP на удаленной машине, по которому с ней нужно связываться. В свойстве TimeOut указывается временной интервал в миллисекундах, в течение которого программа будет ожидать ответа от сокета удаленной машины. Если по истечении этого времени ответ не поступит, будет возбуждаться исключительная ситуация. Если этому свойству задать значение 0, то ответ будет ожидаться бесконечно долго, пока не будет получен. Но если он все-таки не придет, то приложение зависнет. Поэтому лучше указывать ненулевое число, а по том подбирать его значение с учетом пропускной способности сети.

    Среди общих методов нужно упомянуть методы Connect и Disconnect. Первый из них применяется для установления связи с удаленной машиной. Второй - для разрыва установленного соединения.

    Среди общих свойств компонентов можно упомянуть свойства ОnСоnnect, OnConnectionFailed, OnConnectionRequired, OnDisconnect, OnError, OnHostResolved, OnlnvalidHost и OnStatus.

    События OnConnect и OnDisconnect происходят в результате успешного выполнения методов Connect и Disconnect. Если процесс установления связи заканчивается ошибкой, происходит событие OnConnectionFailed. Событие OnConnectionRequired происходит после попытки вызова одного из методов, требующих для своей работы подключения к удаленному компьютеру. В обработчике этого события можно выполнить подключение и вернуть через параметр Handled значение True. В этом случае будет повторена попытка вызова того метода, который сгенерировал это со бытие. Если окажется, что соединение не установлено, или если в параметре Handled находится значение False, то метод завершится аварийно и будет возбуждена исключительная ситуация. Событие OnError наступает когда происходит ошибка в работе сокетов Windows. Через параметр ЕrrNo обработчика этого события передается числовой код ошибки, а через второй параметр ErrMsg - строка сообщения об ошибке.

    Событие OnHostResolved происходит в случае успешного преобразования имени компьютера в IP-адрес. Событие OnlnvalidHost наступает, если в свойстве Host задано неверное имя или IP-адрес удаленного компьютера. Событие OnStatus генерируется, когда меняется статус компонента.

Таблица 1. Элементы управления FastNet для Интернет
Элемент
Описание
TNMDayTime
Получает дату и время от серверов Интернет даты и времени в соответствии со стандартом RFC 867.
TNMMsg
Посылает простые текстовые сообщения в кодах ASCII по Интернет или интранет с использованием протокола TCP/IP. При этом на хост-компьютере, на который посылается сообщение, должен быть запущен сервер, использующий компонент на основе TNMGeneralServer, например, компонент TNMMsg.
TNMMsgServ
Компонент TNMMsgServ необходим для получения сообщений, посланных компонентом TNMMsg. Заметим, что для решения задач правильнее будет разработать свой собственный протокол обмена сообщениями, чем непосредственно использовать компоненты TNMMsg и TNMMsgServ.
TNMEcho
Используется для отправки и получения сообщений через эхо-сервера Интернет по стандарту RFC 862.
TNMFTP
Осуществляет передачу файлов в Интернет и интранет между серверами FTP по протоколу FTP (File Transfer Protocol).
TNMHTTP
Выполняет передачу файлов по протоколу HTTP (Hypertext Transfer Protocol). Компонент отвечает стандарту HTTP 1.1, который описывается в спецификации RFC 2068.
TNMNNTP
Применяется для получения и публикации статей через Интернет и интранет по протоколу NNTP (Network News Transfer Protocol). Описан в RFC 977.
TNMStrm
Используется для пересылки потоков данных компоненту TNMStrmServ в Интернет или интранет.
TNMStrmServ
Принимает и пересылает потоки, посланные компонентом TNMStrm.
TNMPOP3
Принимает почтовые сообщения от почтовых серверов по протоколу POP3 (Post Office Protocol). Описан в RFC 822.
TNMSMTP
Отправляет почту через серверы SMTP (Simple Mail Transfer Protocol) и выполняет другие задачи, описанные в стандарте RFC 821.
TNMTime
Получает время от серверов времени Интернет по стандарту RFC 868.
TNMUDP
Передает данные по сети с использованием протокола UDP (User Datagram Protocol).
TNMURL
Преобразует строку URL в строку символов и обратно.
TNMUUProcessor
Кодирует и декодирует файлы по стандарту MIME и UUEncode.
TPowersock
Инкапсулирует API сокетов Windows. Компонент является базовым классом для многих компонентов страницы FastNet. Его можно использовать его для создания элементов управления, использующих другие известные протоколы или для создания своих собственных протоколов.
TNMGeneralServer
Используется для серверов TCP/IP общего назначения. Используется в качестве базового класса для создания многопотоковых Интернет-серверов как поддерживающих стандарты RFC, так и других.
TNMFinger
Получает информацию о пользователе с finger-сервера Интернет, используя протокол Finger, описанный в стандарте RFC 1288.

    На следующем шаге мы рассмотрим компонент TNMTime страницы FastNet.




Предыдущий шаг Содержание Следующий шаг