уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.

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 используется компонент аналогичный THTTPCliTSSLHTTPCli, для FTP — TSSLFTPCli и т.д.

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

0 0 голоса
Рейтинг статьи
уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.
Подписаться
Уведомить о
13 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии
Алексей Тимохин

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

Оригинал:
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
Serg
22/05/2010 09:42

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

Дмитрий
Дмитрий
22/05/2010 18:05

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

Serg
Serg
22/05/2010 22:44

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

Дмитрий
Дмитрий
24/05/2010 15:02

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

Spider_NET
26/05/2010 13:35

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

Fr0sT
Fr0sT
26/10/2010 17:31

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

loginza1Hep1kR6tGed8fyOJZHLuu

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

Fr0sT
Fr0sT
30/12/2011 19:07

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