C++Builder XE 原始 SSL 套接字

标签 c++ c++builder c++builder-xe7

我需要在 C++Builder XE7 中使用 SSL 连接到服务器。我可以找到有关 HTTPS 和 SMTP 的内容,但找不到有关自定义连接的内容。在 BCB5 中,这要容易得多,我会使用自定义代码来完成,但现在使用 Android 和 iOS,事情需要做一些不同的事情,因为我们现在也需要支持这些产品。

我研究过 TIdSocketSSL,但我能找到的例子很少,它似乎需要一个最终来自 SMTP 或 HTTPS 的所有者。

最佳答案

C++Builder 随 Indy 一起提供,它具有一个可用于实现自定义协议(protocol)的 TIdTCPClient 组件。 Embarcadero 论坛、Indy 论坛、StackOverflow 以及各种博客上都有大量示例,演示如何使用 Indy 发送/接收自定义数据。

对于 SSL/TLS,只需在调用 Connect() 之前将 TIdSSLIOHandlerSocketOpenSSL 组件分配给 TIdTCPClient::IOHandler 属性,并配置其根据需要配置属性(证书、SSL/TLS 版本等)。当您想要执行 SSL 握手时,请将 TIdSSLIOHandlerOpenSSL::PassThrough 属性设置为 false。您可以在调用 Connect() 之前进行设置,以便在交换任何数据之前立即进行握手(又名隐式 SSL/TLS),也可以在交换未加密数据之后进行设置首先(又名显式 SSL/TLS),具体取决于您的协议(protocol)需求。

关于C++Builder XE 原始 SSL 套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29202174/

相关文章:

c++ - 在 Google Protocol Buffers 中对消息的重复字段中的项目进行排序

android - 使用 javah 工具时包含 Android 平台 jar

c++ - vcl.h : No such file or directory

c++ - 内河码头 : How to use TBase64Encoding's EncodeBytesToString method

c++ - 如何将 `.CHM` 文件用于 C++ Builder XE7 64 位应用程序?

static-libraries - 如何将 64 位 COFF 转换为 OMF?

c++ - 如何在 C++ 的 gdb 中为 operator() 设置断点?

c++ - 字符在多维数组中重复

C++ Builder DBGrid 在 xlsx 文件中导出到 Excel

c++ - 在 C++ 中以编程方式设置 Firemonkey 控制字体