【发布时间】:2011-10-07 17:45:20
【问题描述】:
我需要与使用 SSL 的设备通信。它曾经使用套接字与我的 Delphi 应用程序通信,但现在我想使用与设备的安全通信。
那么,有没有可以使用 SSL 的 TServerSocket 和 TClientSocket 等效组件?
【问题讨论】:
我需要与使用 SSL 的设备通信。它曾经使用套接字与我的 Delphi 应用程序通信,但现在我想使用与设备的安全通信。
那么,有没有可以使用 SSL 的 TServerSocket 和 TClientSocket 等效组件?
【问题讨论】:
Delphi 中没有内置的直接等效项。您可以将 Indy 与 OpenSSL 或 SecureBlackbox SSL 类一起使用,但是 Indy 并不是 TServerSocket/TClientSocket 的直接替代品,因为它们使用非常不同的编码模型。或者您可以使用 SecureBlackbox 的 TElSecureClientSocket 和 TElSecureServerSocket 类 - 它们分别是 TClientSocket 和 TServerSocket 的后代和直接替代品。注意:SecureBlackbox 是我们的产品。
【讨论】:
TClientSocket 可以和TIdTCPServer 通信,TServerSocket 可以和TIdTCPClient 通信,就好了。无论每一端使用什么包装器,TCP 都是 TCP。要将 SSL 与 TServerSocket/TClientSocket 一起使用,您必须手动将它们连接到 OpenSSL 或 Crypto/STunnel API,仅此而已。 Indy 原生封装了 OpenSSL API,但其 SSL 架构是抽象的,因此可以使用第三方 SSL 实现(如 SecureBlackBox)。
ICS from François Piette 是一个出色的支持 SSL 的开源库。
【讨论】: