IdMappedPortTCP OnOutboundConnect SSL支持

时间:2017-08-25 08:09:42

标签: delphi indy indy10

我正在尝试创建一个允许非SSL感知客户端通过SSL进行通信的简单程序。

基本上,IdMappedPortTCP接受来自客户端的非加密(不是SSL),并通过SSL将数据转发到指定的MappedHost和MappedPort属性。

到目前为止,我在OnOutboundConnect事件上尝试了以下代码,但似乎无效:

AContext.Connection.IOHandler :=  TIdSSLIOHandlerSocketOpenSSL.Create(AContext.Connection);

将其视为 stunnel (SSL / TLS代理)的简单版本

1 个答案:

答案 0 :(得分:1)

您在错误的事件中分配了错误的IOHandler。

您正在为客户端分配连接的IOHandler,而不是与映射服务器的连接的IOHandler。而且,在建立与映射服务器的连接后触发的事件中,您正在这样做。

此外,在建立SSL会话时,您必须将SSLIOHandler的SqlCommand com = new SqlCommand("LoadGUIDs", sqlconn) { CommandType = CommandType.StoredProcedure }; SqlDataReader data = com.ExecuteReader(); // << TIMES OUT 属性设置为False。默认为True。

PassThrough事件而不是OnConnect事件中,请使用:

OnOutboundConnect