Почитав раздел Статьи\Паскаль7.0 Ты уже имеешь представление и о
процедурах и об ООП. Теперь мы начнем с тобой писать интернет приложения
на делфи с помощью инди компонента . Инди компонент - это
"плагин" для делфи , содержащий много много всего для работы с
интернетом. Можно ли обойтись без него? - Да , но придется искать
альтернативу , например MTSP , или использовать возможности
установленных на пк программ , но это уже WinAPI. Это все тоже будет -
то позже . Начнем собственно , подготовительные действия :
Чтобы Delphi можно было использовать для написания интернет-приложений, нужно установить комплект компонент Indy. Последнюю версию Indy можно скачать с ftp-сервера: ftp://indy.fulgan.com/ZIP. Там же можно взять demo-программы.
Если по ссылке выше вы не найдете то что искали то вам СЮДА
Распаковываем архив в папку, например, Indy10. Запускаем Delphi. Меню "Tools->Environment Options->Library”. Добавляем в "Library path” 3 пути: 1. "Indy10/Lib/System" 2. "Indy10/Lib/Core" 3. "Indy10/Lib/Protocols"
Теперь последовательно открываем и компилируем: пакет "IndySystemX0.dpk” (где X – это версия Delphi) ("Indy10/Lib/System”); пакет "IndyCoreX0.dpk” (где X- это версия Delphi) ("Indy10/Lib/Core”); пакет "IndyProtocolsX0.dpk” (где X – это ваша версия Delphi) ("Indy10/Lib/Protocols").
Далее открываем и устанавливаем: пакет "dclIndyCoreX0.dpk” ("Indy10/Lib/Core”); пакет "dclIndyProtocolsX0.dpk” ("Indy10/Lib/Protocols”). Вот и все, установка свежей версии Indy завершена.
Indy компоненты (вкладка indy clients) Раньше нигде не мог достать описание компонентов Indy на русском
языке. Но вот как-то раз удалось купить одну книжку, где это хоть
немного описывалось. Не буду называть название книги, дабы не делать
никакой рекламы. Просто хочу поделиться информацией. Так как в Интернете
её пока мало. Indy это набор компонентов для разработки программ, использующих Интернет и основанных на блокирующих сокетах. Вкладка Indy ClientsКомпонент TIdTCPClient Компонент TIdCPClient (Indy клиент TCP) используется для создания соединения по протоколу TCP. Основные свойства: 1) BoundIP – Локальный IP-адрес, используется при выполнении метода IOHandlerSocket.ConnectClient 2) BoundPort – Целочисленное значение, указывающее номер наиболее
предпочтительного локального порта для клиентского соединения,
используется при выполнении метода IOHandlerSocket.ConnectClient 3) BoundPortMin и BoundPortMax – Указывают допустимый диапазон номеров портов. 4) Host – Строка, где указывается адрес удалённого компьютера,
который используется в качестве конечной точки клиентского соединения. Адрес может быть именем компьютера, подобно wvnvm.wvnet.edu, или
IP-адресом, как 129.71.2.4. Для подключения к серверу на клиентском
компьютере используется IP-адрес 127.0.0.1 или localhost. 5) Port – Номер порта, используемого для соединения с сервером. По
принятому соглашению, для некоторых протоколов Internet зарезервированы
номера портов, например: 21 (FTP), 25 (SMTP), 80 (HTTP), 119 (NNTP). Основные методы: 1) Procedure Connect(const Atimeout: Integer = IdTimeoutDefault); virtual; Используется при создании клиентского соединения с удалённым
сервером. Для создания соединения необходимо определить свойства Host и
Port. 2) Function ConnectAndGetAll: string; virtual; Используется при создании клиентского соединения с удалённым
сервером. Для создания соединения необходимо определить свойства Host и
Port. Метод ConnectAndGetAll считывает данные из соединения до разрыва
соединения. Протокол, используемый при работе с методом
ConnectAndGetAll, должен соответствовать определённым требованиям. Например, значения Day и DayTime должны быть заключены в кавычки. Компонент TIdUDPClient Компонент TIdUDPClient (Indy клиент UDP) является производным от
класса TIdUDPBase и обеспечивает работу клиентского приложения по
протоколу UDP в соответствии со стандартом RFC 786. Компонент TIdUDPClient использует метод Send для передачи данных
удалённому компьютеру по адресу, указанному в свойствах Host и Port, с
помощью протокола UDP без установления соединения. Компонент TIdUDPClient используется как родительский класс для ряда
компонентов, использующих UDP, например TIdDNSResolver, TIdSNTP и
TIdTrivialFTP. Компонент TIdDayTime Компонент TIdDayTime (Indy дата) используется для получения значения
времени. Компонент TIdDayTime реализует протокол RFC 867, который
представляет день и время в доступном для восприятия формате. Для решения вопросов синхронизации времени рекомендуется использовать компоненты TIdTime, TIdTimeServer и TIdTimeUDPServer. Компонент TIdDayTimeUDP Компонент TIdDayTimeUDP (Indy время и день UDP) реализует вариант протокола DayTime RFC 867 на основе UDP. Компонент TIdDNSResolver Компонент TIdDNSResolver (Indy распознаватель DNS) обслуживает
запросы сервера DNS. Запросы сервера DNS предназначены для замены имени
компьютера на его IP-адрес. Компонент TIdDNSResolver является
производным от класса TIdUDPClient. Компонент TIdEcho Компонент TIdEcho (Indy эхо) предназначен для поддержки сервиса
ответного сигнала, используемого, как правило, для проверки
работоспособности сети. Клиент посылает текстовое сообщение серверу,
сервер возвращает сообщение клиенту. Если сообщение искажено, сеть
работает с ошибками. Компонент TIdEchoUDP Компонент TIdEchoUDP (Indy эхо UDP) реализует вариант протокола Echo на основе UDP в соответствии со стандартом RFC 862. Компонент TIdEcho является производным от класса TIdUDPClient и
полезен при отладке и измерении характеристик сети. Компонент TIdEchoUDP
обеспечивает измерение времени, занимаемое прохождением сигнала от и до
сервера совместно с компонентом TIdEchoUDPServer. Реализация на основе UDP позволяет не создавать соединения. Сервер
принимает данные в порт 7. Когда приходит эхо-запрос, то все данные
возвращаются в оригинальном виде. Для использования TIdEchoUDP необходимо выполнить следующие условия: Установить адрес сервера как значение для свойства Host; Вызвать метод Echo для отправки данных на сервер и приёма ответа; Использовать свойство EchoTime для получения времени прохождения сигнала в миллисекундах. Компонент TIdFinger Компонент TIdFinger (Indy указатель) предназначен для поддержки
протокола, дающего пользователю возможность запрашивать информацию о
работе в системе других пользователей. Серверы могут обрабатывать такие
клиентские запросы. Компонент TIdFTP Компонент TIdFTP (Indy FTP) включает полную поддержку протокола
передачи файлов FTP. Поддерживается пассивная и активная передача
данных, а также такие операции, как GET и PUT, удаление каталогов,
получения квот, размеров файлов и каталогов. В своей работе компонент
TIdFTP использует класс TIdSimpleServer. Когда выполняется передача
файлов по протоколу FTP, вторичное соединение по протоколу TCP открыто
для передачи данных. Когда данные были переданы, соединение закрывается.
Такое соединение является уникальным для каждого передаваемого файла и
называется канал передачи данных. Компонент TIdGopher Компонент TIdGopher предназначен для обеспечения сетевого протокола
Gopher, заменяемого в последнее время протоколом HTTP. Сервер,
реализующий этот протокол, обеспечивает иерархическую распределённую
систему поддержки документооборота. Компонент TIdHTTP Компонент TIdHTTP (Indy клиент HTTP) используется для поддержки
сетевого протокола HTTP на стороне клиента (поддерживаются версии 1.0 и
1.1, включая операции GET, POST и HEAD). Кроме того, обеспечивается
поддержка аутентификации пользователей и применение прокси-серверов.
Серверный компонент используется для предоставления услуг другому
Web-серверу, поддерживающему данный протокол. Компонент TIdHTTPServer
облегчает реализацию таких функций, как cookies, управление состоянием
соединения и т.д. Компонент TIdIcmpClient Компонент TIdIcmpClient (Indy протокол контроля) предназначен для
поддержки протокола ICMP, с помощью которого осуществляется выполнение
операции Ping и трассировка сети. TIdIcmpClient является производным от абстрактного класса
TIdRawClient и использует для свойства Protocol значение Id_IPPROTO_ICMP
(Десятичное значение 1). Используемые форматы сообщений и алгоритмы
соответствуют протоколу RFC 792. В свойстве Host указывается имя компьютера или IP-адрес для
эхо-запроса. Для работы с принятой информацией можно использовать
свойство ReplayStatus или событие OnReplay. В свойстве ReceiveTimeout
определяется допустимое время ожидания ответа. Свойство TTL используется для задания максимального числа пересылок,
которые пакет должен пройти до того, как будет возвращён. Для выполнения
приложения трассировки можно выполнять операцию Ping с возрастающим
значением свойства TTL. Каждый ответ будет содержать IP-адрес
последующего узла, позволяя программе построить путь, проходимый
пакетом. Для корректной работы данного компонента в ОС Windows NT, 2000, XP
необходимы привилегии администратора, так как этоn компонент не
использует ICMP.DLL который обычно используется для приложения PING,
использующих командную строку. Компонент TIdIdent Компонент TIdIdent (Indy протокол идентификации) является производным
от класса TIdTCPClient и реализует поддержку протокола идентификации на
стороне клиента в соответствии со стандартом RFC 1413. Компонент TIdIMAP4 Компонент TIdIMAP4 (Indy протокол IMAP4) является производным от
класса TidMessageClient и реализует на стороне клиента протокол доступа к
сообщениям Internet IMAP4. Этот протокол позволяет клиенту производить
доступ к электронной почте и манипулировать сообщениями на сервере
IMAP4. Протокол IMAP4 устанавливает операции для создания, уничтожения и
переименования почтовых ящиков, проверки новых сообщений, постоянного
удаления сообщений, установки и сброса флагов и т.д. Протокол IMAP4 не определяет средства для пересылки почтовых
сообщений. Эта функция возложена на протокол передачи сообщений, который
используется в компоненте TIdSMTP. Компонент TIdIPMCastClient Компонент TIdIPMCastClient (Indy широковещательный клиент) является
производным от класса TIdIPMCastBase реализует широковещательные
возможности клиента на основе протокола UDP, при этом используются
стандарты RFC 1112 и RFC 1458. В компоненте TIdIPMCastClient реализованы абстрактные методы
родительского класса и созданы дополнительные методы, события и
обработчик событий для приёма дейтаграмм. Компонент TIdIRC Компонент TIdIRC (Indy клиент IRC) реализует клиентскую часть сервиса
для оперативного обмена информацией с сервером. Компонент TIdIRC
является производным от класса TIdTCPClient и реализует клиентскую часть
протокола IRC (стандарт RFC 1459). Протокол IRC разработан для проведения конференций на основе текстовых сообщений с помощью сетевого протокола TCP/IP. Компонент TIdLPR Компонент TIdLPR (Indy клиент LPR) реализует клиентскую часть
протокола LPR (RFC 1179). Этот протокол используется для добавления,
удаления файлов и получения информации о режиме удалённого принтера. Компонент TIdNNTP Компонент TIdNNTP (Indy клиент NNTP) необходим для поддержки
клиентской части сетевого протокола NNTP, используемого в службах
новостей. Компонент TIdNNTP включает поддержку кодирования и
декодирования MIME, а также поддержку многобайтных символов и
альтернативных кодировок. Серверный компонент позволяет создавать
серверы новостей. Компонент TIdPOP3 Компонент TIdPOP3 используется для отсылки сообщений электронной
почты и извлечения их из почтового сервера. В этом компоненте
реализованы методы и свойства для получения необходимой информации о
размере и содержимом почтового ящика или почтового сообщения. Компонент TIdQOTD Компонент TIdQOTD используется для поддержки сервиса распространения
коротких сообщений с помощью протокола QUOTD (стандарт RFC 865). С
помощью клиентского компонента осуществляется соединение с экземпляром
серверного компонента для получения ежедневной цитаты. Каждый экземпляр
сервера содержит уникальную базу данных цитат. Компонент TIdQOTDUDP Компонент TIdQOTDUDP используется для реализации сервиса коротких сообщений на основе UDP (стандарт RFC 865). Компонент TIdRexec Компонент TIdRexec реализует клиентскую часть протокола Rexec.
Протокол Rexec иногда используется для запуска задач с удалённого
компьютера, при котором требуется идентификация пользователя. Этот
протокол менее защищённый, чем протокол RSH, так как идентификатор
пользователя и пароль отсылаются как обычное текстовое сообщение,
которое можно перехватить. Для подключения к удалённому компьютеру используется свойства и методы Host, UserName, Password и Execute. Компонент TIdRSH Компонент TIdRSH реализует клиентскую часть протокола RSH. Протокол
RSH иногда используется для запуска задач из удалённого компьютера без
отсылки пароля пользователя. Посылается только идентификатор
пользователя. Для подключения к удалённому компьютеру используется свойства и методы Host, ClientUserName, HostUserName и Execute. Компонент TIdSMTP Компонент TIdSMTP используется в приложениях, работающих с протоколом
SMTP, для обеспечения режима аутентификации, кодирования и
декодирования MIME, а также для поддержки многобайтовых символов. Компонент TIdSNMP Компонент TIdSNMP используется для реализации протокола SNMP. Компонент TIdSNPP Компонент TIdSNPP является производным от TIdTCPClient. Протокол SNPP
является простым протоколом для доставки сообщений как в одном, так и
обоих направлениях для страничных устройств. В простейшем случае его
можно использовать для соединения Internet с терминалами страничных
устройств. Компонент TIdSNPP реализует одноуровневую поддержку SNPP для доставки сообщений и приёма статуса сообщений на порт номер 7777. Компонент TIdSNTP Компонент TIdSNTP предназначен для поддержки службы времени по
протоколу SNTP. Может использоваться для соединения с любой службой
времени с целью получения текущей даты и времени. Компонент TIdSysLog Компонент TIdSysLog реализует клиентскую часть протокола BSD SysLog
(стандарт RFC 3164) для отправки уведомления на сервер SysLog. Протокол
SysLog разработан для отправки уведомляющих сообщений в сети. Компонент TIdTelnet Компонент TIdTelnet используется для организации удалённых сеансов на
другом компьютере, включая консольные переговоры и аутентификацию.
Протокол связи предполагает наличие человека, осуществляющего
интерактивное взаимодействие с сервером. Клиентский компонент не
обладает поддержкой дисплея и эмуляцией терминала, а просто обеспечивает
соединение с серверной частью. Компонент TIdTime Компонент TIdTime (Indy время) является альтернативой компонента
TIdSNTP для определения времени. Форматы этих двух протоколов различны.
Компонент TIdTime основан на формате RFC 868 и возвращает время во
внутреннем стандарте ОС UNIX, выполняя все необходимые преобразования.
Серверный компонент подобен по функционированию серверу DayTime. Он
может использоваться для реализации службы времени на локальном
компьютере. Дополнительного кода не требуется, достаточно создать
экземпляр класса TIdTimeServer, который будет возвращать время
внутренних часов серверного компьютера. Компонент TIdTimeUDP Компонент TIdTimeUDP является версией UDP протокола времени Time в соответствии со стандартом RFC 868. Протокол времени Time является простым протоколом для синхронизации
времени в локальных сетях. Для получения высокой точности при
использовании взаимосвязанных сетей используется компонент TIdSNTP. Для
получения текущей даты и времени в удобном формате используется
компонент TIdDayTime. Протокол Time в настоящее время не может обрабатывать даты после 2035 года. Это ограничение стандарта RFC 868. Компонент TIdTrivialFTP Компонент TIdTrivialFTP необходим для организации простейшего
протокола передачи файлов. Клиентский компонент этого протокола
используется для соединения с экземпляром соответствующего серверного
компонента. Протокол предназначен для локальных случаев передачи файлов,
например, в локальных вычислительных сетях или для загрузки/выгрузки
таблиц маршрутизации. Из-за упрощенных характеристик этого протокола его
использование не рекомендуется в случае применения алгоритмов
аутентификации или любых других механизмов защиты. Основное назначение
данного протокола – передача файлов аппаратному устройству с целью его
модификации. Компонент TIdWhois Компонент TIdWhois осуществляет соединение с любым стандартным
сервером Whois, позволяя получить информацию о доменах. Серверный
компонент обеспечивает базовую функциональность сервера NIC.
|