C++Builder XE Raw SSL-сокет
Мне нужно подключиться к серверу с помощью SSL в C++Builder XE7. Я могу найти вещи для HTTPS и SMTP, но ничего для пользовательских подключений. В BCB5 это было намного проще, я бы сделал это с помощью пользовательского кода, но теперь с Android и iOS все должно быть немного по-другому, так как теперь мы должны поддерживать и эти продукты.
Я посмотрел на TIdSocketSSL, но с очень немногими примерами, которые я смог найти, похоже, нужен владелец, который в конечном итоге прибывает из SMTP или HTTPS.
1 ответ
C++Builder поставляется с Indy, который имеет TIdTCPClient
компонент, который вы можете использовать для реализации пользовательских протоколов. Существует множество примеров на форуме Embarcadero, форуме Indy, Stackru и различных блогах, демонстрирующих, как отправлять / получать пользовательские данные с помощью Indy.
Для SSL/TLS просто назначьте TIdSSLIOHandlerSocketOpenSSL
компонент к TIdTCPClient::IOHandler
собственность перед звонком Connect()
и настройте его свойства по мере необходимости (сертификаты, версии SSL/TLS и т. д.). Если вы хотите выполнить рукопожатие SSL, установите TIdSSLIOHandlerOpenSSL::PassThrough
свойство ложно. Вы можете установить его перед звонком Connect()
таким образом, рукопожатие происходит непосредственно перед обменом любыми данными (так называемый неявный SSL/TLS), или вы можете установить его после первого обмена незашифрованными данными (так называемый явный SSL/TLS), в зависимости от потребностей вашего протокола.