Indy软件包的TidIMAP4客户端不支持socks 4/5代理,添加该支持的可能方法是什么?
答案 0 :(得分:3)
Indy已经有一个内置框架,用于通过代理连接任何 TCP客户端组件。您只需将所需的代理组件附加到客户端组件,然后客户端将自动连接到代理并告诉它连接到哪里。如果您需要通过多个代理连接,可以链接代理组件。
Indy 10默认提供两个代理组件 - TIdSocksInfo
用于SOCKS 4 / 4a / 5代理,TIdConnectThroughHttpProxy
用于HTTP代理(使用HTTP CONNECT
方法)。但是框架足够通用,如果您需要实现其他代理协议,则可以派生新类。
在您的情况下,在连接到服务器之前,将TIdIOHandlerStack
组件分配给TIdIMAP4.IOHandler
属性,然后将TIdSocksInfo
组件分配给TIdIOHandlerStack.TransparentProxy
属性,然后根据需要配置TIdSocksInfo
。所有这些都可以在设计时或运行时完成。