Подписка

добавить на Яндекс

Наши проекты

Delphi+Google

Google API

Google API в Delphi - проект с открытым исходным кодом.

Chrono

Chrono

Хронометр - программа для ведения списка задач.

ODFProc

ODFProc

ODFProc - работа с документами OpenOffice в Lazarus и FreePascal.

Поддержка блога

А тут я коплю на лицензию Delphi XE на iPad =).
Сумма пожертвования не фиксирована.

Публикации

Год назад

Случайный пост

Последние

Сообщения форума

Комментарии

Социальные сети

Google

Facebook

Twitter

Опрос

Вы сейчас или в ближайшем обозримом будущем планируете разрабатывать кроссплатформенное приложение с использованием Firemonkey?



Loading ... Loading ...

Блоги и сообщества

Статьи по Delphi DelphiFeeds.ru - Все Delphi-блоги Рунета Сообщество умных людей VR-Online.RU Бесплатный журнал для программистов и всех, кто интересуется IT Статьи и уроки по Delphi Новостной блог о высоких технологиях
Система Orphus
Опубликовал Vlad 21 мая 2010 в 19:11.
Категории: Delphi в Web.


Internet Components Suite (ICS) - это набор компонент для работы с Интернет в Delphi. Достаточно известные и популярные компоненты, разработанные впервые Franзois PIETTE и представляющие достаточно серьёзную альтернативу для Indy. Компоненты абсолютно бесплатны, имеют открытый исходный код и совместимы со всеми существующими сегодня версиями Delphi.
Последний релиз компонент ICS состоялся 12 сентября 2009 - вышла седьмая версия библиотеки, совместимая с Delphi 2010 и, включающая набор компонент для работы с SSL.

Закладка Overbyte ICS

Компоненты, реализующие работу с различными сетевыми протоколами:

TWSocket - базовый практически для всей библиотеки ICS компонент, поддерживающий работу через SOCKS (клиент и сервер). Используется для реализации протокола TCP (RFC 793) и протокола UDP (RFC 768).

TWSocketServer - компонент для работы с SOCKS (сервер). Может использоваться, например, для "прослушивания" портов и выполнения каких-либо действий при подключении клиента.

TFingerCli - клиент для работы с Finger - сетевым протоколом, который предназначенн для предоставления информации о пользователях удалённого компьютера. Подробная информация о протоколе содержится в RFC 1288.

TFtpCli TFTPServer -  компоненты для организации работы FTP-клиента и FTP-сервера. FTP - сандартный протокол для передачи файлов.

THTTPcli THTTPServer - компоненты для организации работы с HTTP-протоколом на стороне клиента и сервера соответственно.

THttpAppSrv - компонент предоставляющий в наше распоряжение ядро для организации крупных приложений HTTP с большим количеством динамически создаваемых страниц и т.д. Подробная инструкция о работе с компонентом содержится в Wiki компонентов ICS (на английском языке).

TNNTPCli - клиент для NNTP (Network News Transfer Protocol) - протокола для обмена сообщениями в телеконференциях.

THtmlNNTPcli - компонент, расширяющий возможности TNNTPCli. Представляет в наше распоряжение ряд свойсти методов для передачи/получения сообщений в виде HTML-кода.

TPing - может использоваться для проверки доступности хостов. Реализует частично ICMP-протокол (Internet Control Message Protocol — межсетевой протокол управляющих сообщений).

TTnСnx - компонент для реализации Telnet-соединения (Telnet - сетевой протокол для реализации текстового интерфейса по сети).

TSMTPcli - компонент для отправки почты по SMTP. Наследниками этого компонента являются компоненты TSyncSmtpcli (организация синхронной работы с SMTP) и THtmlSmtpcli (расширяющий возможности по отправке HTML-кода в письмах)

TPOP3cli - компонент, организующий получение почты по протоколу POP3. Наследником этого компонента является TSyncPOP3cli.

TDNSQuery - компонент для организации работы с запросами DNS.

Вспомогательные компоненты:

TMIMEDecode, TMimeDecodeEx и TMIMEDecodeW компоненты, предназначеные для раскодирования файлов, переданных вместе с электронным письмом (attach files). Компоненты принимают как файлы, так и потоки. В процессе работы компонента вызываются события, которые можно использовать, например, для отбражения хода процесса или сохранения файла на диск.

TEmulVT - компонент, реализующий эмуляцию терминала. Реализуется большинство операций и последовательностей. Наследником является компонент TTnemulVT - компонент, сочетающий в себе возможности TEmulVT и TTnСnx.

TtnScript - компонент для добавления возможности выполнения сценариев пр работе с TTnemulTV. Является наследником от TTnemulTV.

TIcsCharsetComboBox - список для удобного выбора кодировок, доступных в системе.  По выбранному значению в списке можно получить строку для передачи кодировки в заголовках, номер кодовой страницы и т.д.

TMultiProgressBar - компонент, представляющий собой многосекционный ProgressBar. Компонент будет удобно использовать, например, при закачке большого файла из Сети по частям. Внешний вид трехсекционного MultiProgressBar'а предсавлен на рисунке:

Компонент TMultiProgressBar удобно использовать совместно с TMultipartFTPDownloader или TMultiHTTPDownloader, которые обеспечивают загрузку файла с помощью нескольких одновременных соединений по FTP или HTTP-протоколу соответственно.
TicsLogger - компонент, позволяющий организовать удобное хранение логов работы какого-либо компонента библиотеки ICS. Лог может вестись как непрерывно (каждая новая запись будет добавляться в конец файла), так и обновляться при каждом новом соединении.

Закладка Overbyte ICS SSL

Закладка содержит компоненты, аналогичные тем, что расположены на "Overbyte ICS", но оеспечивающие работу с использованием SSL.
Например, для работы с HTTPS используется компонент аналогичный THTTPCli - TSSLHTTPCli, для FTP - TSSLFTPCli и т.д.

В целом можно сказать, что ICS достаточно мощная и удобная библиотека для работы с различными сетевыми протоколами. Сам я об этой библиотеке узнал давно, ещё лет 5 назад, но не использовал в силу различных причин - то не было надобности, то хотелось разобраться с тем же Synapse и т.д. Думаю, что сейчас в свободное от основной работы время, буду изучать особенности работы с ICS.

Понравилась статья? Тогда:
Делись! Загружай! Плюсуй!
   Отправить PDF на   
Читай ещё статьи на WebDelphi.ru

Комментарии (13)

WP_Cloudy
  • Алексей Тимохин пишет:

    Несмотря на то, что компоненты бесплатные, для использования их необходимо зарегистрировать. А регистрация там забавная: необходимо отправить открытку автору программы.

    Оригинал:
    4. You must register this software by sending a picture postcard
    to the author. Use a nice stamp and mention your name, street
    address, EMail address and any comment you like to say.

  • Serg пишет:

    Компонент конечно хороший, но есть один недостаток: если его использовать в многопоточных задачах, то один поток перекрывает сокет и другие потоки просто стоят и ждут освобождения сокета. Вот такая многопоточность в этом компоненте. По этому моя дорога программирования была: Indy -> ICS -> Indy.

  • Vlad пишет:

    Спасибо за информацию. Я, можно сказать, только-только начинаю более подробно разбираться в работе с ICS. Теперь буду знать где можно ждать «подвоха»:)

  • Vlad пишет:

    Алексей Тимохин, Интересно. Жаль размер открытки не уточнен и зависит ли от размеров открытки срок «регистрации» :).

  • Дмитрий пишет:

    >Компонент конечно хороший, но есть один недостаток: если его использовать в многопоточных задачах, то один поток перекрывает сокет и другие потоки просто стоят и ждут освобождения сокета. Вот такая многопоточность в этом компоненте. По этому моя дорога программирования была: Indy -> ICS -> Indy.
    Зачем многопоточность в асинхронной библиотеке??
    Я вот с инди перешел на эту либу и безумно рад, про потоки забыл, все делаю на событиях, экономия процессорного времени и памяти налицо, и к тому же код стал получаться «более объектно-ориентированным». Теперь жалею что на инди убил полгода времени.
    И кстати, видел свойство MultiThreading, случайно не этот флаг нужно выставлять?

  • Serg пишет:

    Флаг MultiThreading не дал никакого результата, компонент отрабатывает в многопоточном режиме все верно, но работа с сокетом как-то не так построена, такое чувство что при создании несколько копий компонента в разных потоках сокет используется один. В результате для получения ответа с сервера потоки выставляются в очередь. Элементарно можно проверить если организовать проверку ТИЦ для 10-20 сайтов.
    Но есть и хорошая сторона этого компонента, кому скорость не критично, то лучше использовать его — он более что ли гибкий. Например, если сделать дисконект на ICS и на Indy на «зависшем» серваке, т.е. который долго не дает ответа, то Indy будет «думать» долго — сек 5-10, а ICS — мгновенно. Если кто знает как это подправить на Indy, буду рад помощи.

  • Дмитрий пишет:

    Попытка №2: =)
    > Зачем многопоточность в асинхронной библиотеке?
    Я вот этого никак не могу понять.

  • Spider_NET пишет:

    Мне ICS всегда нравились. Впервые познакомился с этой библиотекой в конце 2002 года. С тех пор постоянно использовал в своих проектах. Одно время помню были проблемы с апдейтами, а теперь смотрю либу опять поддерживают.

  • Fr0sT пишет:

    >Несмотря на то, что компоненты бесплатные, для использования их необходимо зарегистрировать
    Это лишь настоятельная просьба автора :)
    >есть один недостаток: если его использовать в многопоточных задачах, то один поток перекрывает сокет и другие потоки просто стоят и ждут освобождения сокета
    Не верю. Асинхра в многопоточном приложении имеет свой нюанс: надо организовывать цикл выборки сообщений в каждом потоке.А для проверки ТИЦ никакой многопоточности не надо, запускаешь N коннектов и обрабатываешь события.
    Синхронная модель при >10 одновременных подключениях — это реальная жесть, а вот асинхронность, хоть и намного сложнее для освоения, позволяет масштабировать приложение в очень широких масштабах.

  • mail.ru loginza1Hep1kR6tGed8fyOJZHLuu пишет:

    можно ссылочку на последнюю версию..

  • Vlad пишет:

    Ссылка эта http://www.rtfm.be/fpiette/indexuk.html , но почему-то сайт не пашет :(

  • Fr0sT пишет:

    Overbyte.be, официальный сайт же.

  • Vlad пишет:

    Fr0sT, да, сорри, тупанул под НГ :) Конечно же http://www.overbyte.be

Ваш ответ

Внимание: Все комментарии модерируются, и это может вызвать задержку их публикации. Отправлять комментарий заново не требуется.

Пожалуйста, заключайте исходный код в тэги [code][/code].
Если код большой, то воспользуйтесь Вставкой кода на отдельной странице и оставьте в комментарии ссылку на исходник

   


Лазерные Картриджи, установка снпч. --|--. фасадный декор