Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Можно ли использовать компоненты Indy для Visual C++ ? (http://forum.oszone.net/showthread.php?t=46005)

Kelasant 28-02-2005 16:23 302263

Можно ли использовать компоненты Indy для Visual C++ ?
 
Привет всем!

Вопрос такой:
Я пишу на Builder C++ 6.0.
Хотел использовать компоненты Indy для соединений по TCP/IP с использованием SSL.
Но мне нужно соединятся с программой коллеги, а коллега пишет на Visual C++ 6.0. Обеспечение взаимодействия - моя проблема, я должен ему потом дать исходный код.

Можно ли использовать компоненты Indy для Visual C++ 6.0?
Или есть альтернативные компоненты для Visual C++?

Может, можно еще чем-то нам обоим воспользоваться?
Может, использовать WinAPI?

Какие есть варианты?
Подскажите, плиз!

Kelasant 03-03-2005 12:01 303178

В общем, нарыл следующие варианты:

1. ОпенССЛ
http://www.openssl.org/

2. Библиотека АСЕ
http://www.cs.wustl.edu/~schmidt/ACE.html

Обдумываю вариант предложить коллеге работать с ОпенССЛ.
А самому типа использовать Инди.
Но вот опасения у меня возникли: а что, если Инди будет коряво стыковаться с ОпенССЛ или тем же АСЕ?
Вроде стандарт, но мало ли какие глюки могут возникнуть?
Опасения хоть немного оправданы или я зря волнуюсь?
Как думаете?

ivank 04-03-2005 14:32 303535

Kelasant
Я предлагаю для начала чуть-чуть поучить матчасть.

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

Я плохо себе представляю Indy. Но насколько я понимаю, она предоставляет серверные/клиентские уомпоненты для распространённых протоколов, ну ещё и клиент/сервер на голых сокетах. Короче, если из Indy используются только компоненты для работы с сокетами, то никаких проблем с ACE не будет (хотя это и будет стрельба из пушки по воробьям). Пусть пишет хоть с Windows Sockets.

Если используются более другие вещи, то нужно искать соответствующие библиотеки. Их много.

Лучше выберете какой-нибудь стандартный протокол или сочините свой, и пусть каждый реализовывает его так как ему удобней.

Kelasant 07-03-2005 14:15 304291

Насчет других вещей.
Хочу построить систему, где много клиентов общаются с сервером по сильнозащищенному соединению.
Насколько я в курсе, SSL соединение есть весьма хорошим выбором.
Вопрос усугубляется тем, что компоненты системы могут быть написаны на Borland C++ Builder или на Visual C++.
А так же тем, что для всех компонент системы исходный код коммуникации должен предоставить я.
Хочеться не писать дважды одно и тоже.

Матчасть охотно - но не хватает нормальной доки по этому делу.
Если я правильно все понимаю, то все в сети основано на сокетах. Верно?
Соответственно, "секурные сокеты" и есть то, что мне надо?!
Значит, с помощью OpenSSL и Indy можно сделать SSL-соединение - это продукты одного класса.
Верно?

Дальше совсем непонятка.
АСЕ позволяет сделать все то же самое, но это всего лишь удобный интерфейс к стандартным голым сокетам системы?
Если так, то что делают библиотеки OpenSSL и Indy? Они реализовали собственный механизм работы? Они не используют API системы для сокетов?

Может, я в чем-то ошибаюсь. Направьте на путь истинный, плиз.

ivank 07-03-2005 15:46 304308

Не буду больше теоретизировать :)

http://www.indyproject.org/
Сказано, что вроде Indy с Visual Studio пользовать можно. Так же там про поддержку SSL что-то написано, я не вникал. Так что, используйте Indy, раз вам так удобней и не мучайтесь.

Kelasant 07-03-2005 16:10 304318

А что, поддержка для C# и Visual Basic.net предполагает также поддержку для Visual C++ ?

Я по этой ссылке увидел лишь "Indy Sockets includes support for C#, Visual Basic.net, Delphi, C++ Builder, and Kylix."
Нет там про Visual C++ :(

ivank 07-03-2005 16:49 304325

Ну... В случае Managed C++ - предполагает :)

Вот вы и сами нашли ответ на свой вопрос. Indy вместе с Visual C++ (6-м во всяком случае) использовать нельзя.

По любому, вы не описали своей задачи. Indy - библиотека немаленькая. Что конкретно вы хотите из неё использовать? Если что-то вроде SocketServer, то вас вполне устроит даже WinSock. Если более сложные компоненты, то надо думать.

Короче, что вам конкретно надо сделать? Тогда и адекватную замену найти можно будет.

Kelasant 07-03-2005 17:35 304336

Уточненная постановка задачи.
1. Нужно обмениваться информацией между клиентами и сервером (речь не о базах данных).
2. Чтобы код коммуникации был переносим между Builder C++ и Visual C++.
3. Дополнительное требование: чтобы посторонним узнать содержимое передаваемых данных было ОЧЕНЬ трудно.

В качестве решения сразу нарисовался SSL, хотя это не догма.
Продуктами для реализации SSL-решения являются Indy, OpenSSL, ACE.
Но Indy отпал из-за отсутствия поддержки в Visual C++.

Я лишь хотел узнать дополнительные вещи:

1. У кого-то есть более хорошие (аргументированные) варианты реализации этой задачи, кроме перечисленных?
2. Indy будет без проблем стыковаться с OpenSSL (ACE)?
3. Или же мне лучше изначально ориентироваться на OpenSSL (ACE)?

ivank 07-03-2005 23:39 304427

Kelasant
И Indy и ACE под собой используют всё тот же OpenSSL. Так что никаких проблем в стыковке этих трёх между собой не будет, вот.

Kelasant 08-03-2005 22:57 304670

Да, действительно, вчитался....
Спасибо.


Время: 05:39.

Время: 05:39.
© OSzone.net 2001-