Модераторы: Snowy, Poseidon, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Indy vs Client/Server Sockets, Вопрос чем Indy Лучше ? или Хуже 
:(
    Опции темы
Молоток
Дата 17.4.2008, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 3.4.2008

Репутация: нет
Всего: -2



Постоянно работаю с ClientSocket, ServerSocket
Отлично всё работает.
Почему все говарят что лучше использовать Indy Однако не говарят почему это лучше..
Хочу услышать мнения специслистов на эту тему.
Спасибо.
PM MAIL   Вверх
kemiisto
Дата 17.4.2008, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: нет
Всего: 160



В принципе, отличий много:
  •  в Indy - кросплатформенные компоненты (VCL, CLX, VCL.NET);
  •  в Indy - не только низкоуровневые компоненты, но и высокоуровненвые.
  •  ...

Но главная причина:

Цитата(Borland)

Borland is deprecating the use of the TServerSocket and TClientSocket from the unit ScktComp. It is recommended that you use the Indy components for socket operations. The TServerSocket and TClientSocket will no longer be installed on the component palette by default. If you require the use of these components then you can install the design time package named dclsockets70.bpl, found in your bin directory. For deployment with runtime packages, you will need to deploy rtl70.bpl and any other required
packages.


Это сообщение отредактировал(а) kemiisto - 17.4.2008, 10:30


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Молоток
Дата 17.4.2008, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 3.4.2008

Репутация: нет
Всего: -2



kemiisto
 в Indy - кросплатформенные компоненты (VCL, CLX, VCL.NET);

Приложения Делфи сами по себе не могут работать в nix Системах, так что не какой не плюс, а минус что есть лишние компоненты.

Это сообщение отредактировал(а) Молоток - 17.4.2008, 10:34
PM MAIL   Вверх
Poseidon
Дата 17.4.2008, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 4
Всего: 133



Цитата(Молоток @  17.4.2008,  10:30 Найти цитируемый пост)
Приложения Делфи сами по себе не могут работать в nix Системах
А Clicks-приложения (CLX) могут? А Indy в CLX есть! А Socket есть?



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
ksili
Дата 17.4.2008, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: нет
Всего: 17



По-моему Indy на этих самых сокетах и сделана

На Indy нельзя скачать часть HTTP-страницы (напрмер, только первых 10 кБ) - только полностью, а на сокетах это сделать можно. 
В общем по-моему Indy это скорее высокоуровневые компоненты. А сокеты по отношению к ним - более низкоуровневые


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
Poseidon
Дата 17.4.2008, 11:08 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 4
Всего: 133



Вообще, смотря для каких целей что надо. Можно на прямую брать функции из winsock.dll и говорить что не Indy, не Sockets не нужны. Но согласись, создать ftp сервер все-же проще на Indy чем на ServerSocket (кода менше, времени менше надо).


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
MetalFan
Дата 17.4.2008, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



у инди есть TidTCPServer/TidTCPClient... отличается от стандартных(TServerSocket, TClientSocket) более продвинутым функционалом и отсутствием неблокирующего режима работы


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Молоток
Дата 17.4.2008, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 3.4.2008

Репутация: нет
Всего: -2



Poseidon, Почему ФТП сервер можно и на сокетах написать я писал.
Тойсть для всех задач, я использую сокеты начиная от передачи файлов и крупных проектов по работе
с базами даных через сервер.
Для любых целей!

Это сообщение отредактировал(а) Молоток - 17.4.2008, 13:30
PM MAIL   Вверх
MetalFan
Дата 17.4.2008, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



Цитата(Молоток @  17.4.2008,  13:29 Найти цитируемый пост)
Почему ФТП сервер можно и на сокетах написать я писал.

а можно и колесо заново изобрести и велосипед самому руками собрать... только вот зачем? будут ли оправданы затраты человеко-часов?


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Молоток
Дата 17.4.2008, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 3.4.2008

Репутация: нет
Всего: -2



MetalFan, Там что одной функцией 
ftp.create();
И всё у меня полноценный ФТП сервер с всеми примочками ? ))
Один фиг кодить прийдётся даже самую простую докачку файлов при обрыве связи или туже передачи файлов.

Добавлено через 1 минуту и 35 секунд
Я если не знаю к примеру инди вообще то гараздо быстрей напишу сервак на сокетах с которыми постоянно работаю smile
Вопрос идёт изначально идёт  не о том кто что напишет.
а о том почему нельзя использовать сокеты, чем лучше инди, и факты которые это подтверждают! smile
PM MAIL   Вверх
MetalFan
Дата 17.4.2008, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



Цитата(Молоток @  17.4.2008,  15:06 Найти цитируемый пост)
Я если не знаю к примеру инди вообще то гараздо быстрей напишу сервак на сокетах

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


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Poseidon
Дата 18.4.2008, 21:59 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 4
Всего: 133



Цитата(Молоток @  17.4.2008,  13:29 Найти цитируемый пост)
Poseidon, Почему ФТП сервер можно и на сокетах написать я писал.
Молодец! Только я не пойму, зачем ты сокеты вообще трогал? Брал бы сразу winsock.dll и в путь. Окно тоже на WinAPI сразу бы рисовал. Все события сам обрабатывал. И потом писал бы "народ, а чего вы TButton используете? На ВинАПИ кнопку создать - как два пальца..." Никто не писал что на сокетах нельзя фтп-сервер замутить. Только то, что ты будешь на сокетах делать неделю, с помощью Indy сделается за день. Конечно, если делаешь для себя и времени валом, то никто не запрещает. А если заказчик гонит в шею и ему, в готовой программе, глубоко фиолетово на чем у тебя строится работа. Пади ему обьясни, что неделю придется ждать только потому, что тебе не охота работать с Indy.

Цитата(Молоток @  17.4.2008,  15:06 Найти цитируемый пост)
Вопрос идёт изначально идёт  не о том кто что напишет.
а о том почему нельзя использовать сокеты, чем лучше инди, и факты которые это подтверждают
Где ты увидел что нельзя? Если было бы нельзя, то сокеты не оставили бы в семерке (когда Indy появились). Да и в мануалах только рекомендуют не использовать сокеты, но никто не запрещает. Нравится? Действуй. Пиши целую процедуру захода на сервер и получения от него ответа на get-запрос в пару десятков строк кода. А все остальные напишут IdHttp.Get и будут довольны.



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
gggl
Дата 25.4.2008, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 22.9.2007

Репутация: нет
Всего: нет



Цитата(ksili @ 17.4.2008,  11:01)
...
На Indy нельзя скачать часть HTTP-страницы (напрмер, только первых 10 кБ) - только полностью, а на сокетах это сделать можно. 
...

Так это верно?
Если да то это большой минус по indy :(
PM MAIL ICQ   Вверх
MetalFan
Дата 25.4.2008, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



Цитата(ksili @  17.4.2008,  11:01 Найти цитируемый пост)
На Indy нельзя скачать часть HTTP-страницы

можно, но нестандартным подходом


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Poseidon
Дата 28.4.2008, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 4
Всего: 133



Цитата(ksili @  17.4.2008,  11:01 Найти цитируемый пост)
На Indy нельзя скачать часть HTTP-страницы (напрмер, только первых 10 кБ)
А смысл? Indy правильно все делает, либо качаем все, либо ничего. Смысл качать только часть? Высока вероятность что многие теги не будут закрыты. Зачем нам такая страница?



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
ksili
Дата 28.4.2008, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: нет
Всего: 17



Цитата(Poseidon @  28.4.2008,  12:31 Найти цитируемый пост)
 Зачем нам такая страница?

Можно качать и не для отображения. У меня вот была задача, где программа должна была для выполнения определённых действий делать несколько переходов по страницам. При этом я знал, что  ссылка на следующую страницу для перехода находится вверху текущей страницы. А значит не было смысла качать всё остальное. Если качать столько, сколько нужно, трафик бы снизился в несколько раз. 
Конечно, это была специфическая задача, но тем не менее...


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
Poseidon
Дата 28.4.2008, 09:44 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 4
Всего: 133



Цитата(ksili @  28.4.2008,  08:38 Найти цитируемый пост)
Конечно, это была специфическая задача, но тем не менее...
Специфические задачи требуют специфических подходов. На Indy такие подходы тоже есть. Но вот только каково будет удивление пользователей такой программы, если страница изменится и искомая ссылка окажится внизу? Да и экономия трафика спорная. Сколько занимает среднестатистическая страница (только html-код)? 10кб? Не думаю что на много больше.

Да, тут вот подумал. Сколько строк будет занимать код на сокетах, который умеет "бегать" по https ссылкам? Это же SSL подгружать придется, шифровать-расшифровывать. А теперь представим: все у нас прекрасно работало по http, все отлажено и тут бац, нужно сменить http на https. Если мы пишем на сокетах, то придется заново все переписывать, отлаживать, тестировать. А это время (а для кого-то еще и деньги). А если на Indy, то нужно будет "кинуть" один компонент на форму (IdSSLIOHandlerSocket) и связать его с idHttp (idHttp.IOHandler:= IdSSLIOHandlerSocket). Все! Ничего не надо переписывать, ничего отлаживать. Сколько это времени аймет? Ну максимум минуту. Сколько лишних строк кода? Ни одной (с учетом того что все можно в инспекторе сделать). Вот вам и разница.


Точно такое же и с куками и еще куча с чем.


Это сообщение отредактировал(а) Poseidon - 28.4.2008, 09:46


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
gggl
Дата 30.4.2008, 01:58 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 22.9.2007

Репутация: нет
Всего: нет



Poseidon такое ощющение что инди этото пуп земли а то что в нем нельзя, то впринципе и никаму ненужно, да инди качает всю страницу целиком что не есть гуд, и сколько бы вы текста не написали минус в плюс не привратится...
p.s.: и страници бывают и по 600кб (html).
PM MAIL ICQ   Вверх
Poseidon
Дата 30.4.2008, 08:31 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 4
Всего: 133



VCL тоже не пуп земли, но почему-то некто не пишет серьезные программы на WinAPI. Хотя VCL "тягает" за собой все что возможно, надо это будет или нет. И это минус. Но почему-то никто не обращает внимание на этот минус, а наоборот, то, что в VCL не нужно много лишних движений делать (как в WinAPI или в sockets) - это огромный плюс, который с лихвой перекрывает минус "больших программ" (в случае VCL) и лишнего трафика (в случае Indy). Сейчас, в эпоху безлимитного выделенного интернета и терабайтных винчестеров, мало кто смотрит на размер (программы или трафика). Сейчас смотрят на удобство и скорость (в разработке). Indy, как и VCL, дают такое удобство, чего не скажешь про sockets и WinAPI.

PS. Про SSL возразить нечего?

Цитата(gggl @  30.4.2008,  01:58 Найти цитируемый пост)
p.s.: и страници бывают и по 600кб (html).
Хотелось бы ссылочку на такую страницу, в которой будет 600кб чистого html (т.е. без картинок, флеша и т.п.)



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
MetalFan
Дата 30.4.2008, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



можно! можно в индях скачать часть страницы. только не совсем стандартным способом, но можно


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
gggl
Дата 30.4.2008, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 22.9.2007

Репутация: нет
Всего: нет



Цитата(Poseidon @ 30.4.2008,  08:31)
...
Хотелось бы ссылочку на такую страницу, в которой будет 600кб чистого html (т.е. без картинок, флеша и т.п.)
...

Даже на этом форуме (Vingrad) если покопатся можно найти достаточно увесистые страници, особенно где вставленно много исходного кода, ещё этим блецут конференции на http://www.ixbt.com/ 

для примера эта страница весит 96кб (на момент написания) хотя эта страница не заполнена полностью и здесь нет ниодной строчки исходников...
Вот и сравните 10кб и 96 есть разница?

P.S.: Уж извените трафик у меня не халявный что бы лазить и искать такую страницу.
PM MAIL ICQ   Вверх
Poseidon
Дата 1.5.2008, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 4
Всего: 133



Цитата(gggl @  30.4.2008,  23:30 Найти цитируемый пост)
Уж извените трафик у меня не халявный что бы лазить и искать такую страницу
Но ведь браузером же лазите smile

Я еще раз повторю, никто не запрещает использовать сокеты. Все-лишь рекомендуют переходить на Indy. Рекомендуют потому что Indy более гибки и уневерсальны. То, что на сокетах делается целой процедурой в десятки строк, на Инди делается в инспекторе обьектов вообще без кода. Это значительно упрощает и сам код и его разработку. Хотя для некаторых целей все же целесообразней использовать сокеты. Точно так же как и для некаторых целей целесообразнее написать на WinAPI. Тут все зависит от задачи. Но все же подавляющее большинство задач целесообразнее решать с помощью Индийцев.



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.1512 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.