【发布时间】:2012-08-04 09:20:21
【问题描述】:
我在 Delphi XE2 中使用 TIdSSLIOHandlerSocketOpenSSL Indy 组件通过 TCP 将数据发送到 SSL 服务器(Apple Push Notification Service)。我已经让它在一定程度上起作用,但不确定我是否会以最好的方式去做。我正在做以下事情:
- 设置 SSL 属性公司。证书路径
- 调用.Open方法打开连接
- 检查 OnStatusInfoEx 事件中的 AType 参数,直到我得到“握手完成”
- 使用 .WriteDirect 发送数据
- 使用 .Close 关闭连接
有没有更好的方法来知道连接何时准备好发送数据?有人有直接通过 TCP 使用 TIdSSLIOHandlerSocketOpenSSL 组件的示例代码吗?我发现的示例主要用于 HTTP 调用,其中仅附加了 TIdSSLIOHandlerSocketOpenSSL 组件以保护连接。
【问题讨论】:
-
Indy 组件方法是阻塞的,不需要等待连接握手。将 TIdSSLIOHandlerSocketOpenSSL 分配给 IdTCPClient 的 IOHandler 属性。然后调用 IOHandler 的 Connect 方法(这会阻塞直到安全连接建立),然后发送数据。
标签: delphi ssl tcp openssl indy