Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 如何使TIdIMAP4支持socks 4/5代理?_Delphi_Indy_Indy10 - Fatal编程技术网

Delphi 如何使TIdIMAP4支持socks 4/5代理?

Delphi 如何使TIdIMAP4支持socks 4/5代理?,delphi,indy,indy10,Delphi,Indy,Indy10,Indy软件包的TidIMAP4客户端不支持socks 4/5代理,添加该支持的可能方法是什么?Indy已经有一个内置框架,用于通过代理连接任何TCP客户端组件。您只需将所需的代理组件附加到客户端组件,然后客户端将自动连接到代理并告诉它连接到何处。如果需要通过多个代理进行连接,则可以链接代理组件 默认情况下,Indy 10为SOCKS 4/4a/5代理提供了两个代理组件—TIdSocksInfo,为HTTP代理提供了tidconnectthroughttpproxy(使用HTTPCONNECT方

Indy软件包的TidIMAP4客户端不支持socks 4/5代理,添加该支持的可能方法是什么?

Indy已经有一个内置框架,用于通过代理连接任何TCP客户端组件。您只需将所需的代理组件附加到客户端组件,然后客户端将自动连接到代理并告诉它连接到何处。如果需要通过多个代理进行连接,则可以链接代理组件

默认情况下,Indy 10为SOCKS 4/4a/5代理提供了两个代理组件—
TIdSocksInfo
,为HTTP代理提供了
tidconnectthroughttpproxy
(使用HTTP
CONNECT
方法)。但该框架具有足够的通用性,如果需要实现其他代理协议,则可以派生新类


在您的情况下,在连接到服务器之前,为
TIdIMAP4.IOHandler
属性分配
TIdIOHandlerStack
组件,然后将
TIdSocksInfo
组件分配给
TIdIOHandlerStack.TransparentProxy
属性,然后根据需要配置
TIdSocksInfo
。所有这些都可以在设计时或运行时完成。

Indy已经有一个内置框架,用于通过代理连接任何TCP客户端组件。您只需将所需的代理组件附加到客户端组件,然后客户端将自动连接到代理并告诉它连接到何处。如果需要通过多个代理进行连接,则可以链接代理组件

默认情况下,Indy 10为SOCKS 4/4a/5代理提供了两个代理组件—
TIdSocksInfo
,为HTTP代理提供了
tidconnectthroughttpproxy
(使用HTTP
CONNECT
方法)。但该框架具有足够的通用性,如果需要实现其他代理协议,则可以派生新类


在您的情况下,在连接到服务器之前,为
TIdIMAP4.IOHandler
属性分配
TIdIOHandlerStack
组件,然后将
TIdSocksInfo
组件分配给
TIdIOHandlerStack.TransparentProxy
属性,然后根据需要配置
TIdSocksInfo
。所有这些都可以在设计时或运行时完成。

Indy已经有一个内置框架,用于通过代理连接任何TCP客户端组件。您只需将所需的代理组件附加到客户端组件,然后客户端将自动连接到代理并告诉它连接到何处。如果需要通过多个代理进行连接,则可以链接代理组件

默认情况下,Indy 10为SOCKS 4/4a/5代理提供了两个代理组件—
TIdSocksInfo
,为HTTP代理提供了
tidconnectthroughttpproxy
(使用HTTP
CONNECT
方法)。但该框架具有足够的通用性,如果需要实现其他代理协议,则可以派生新类


在您的情况下,在连接到服务器之前,为
TIdIMAP4.IOHandler
属性分配
TIdIOHandlerStack
组件,然后将
TIdSocksInfo
组件分配给
TIdIOHandlerStack.TransparentProxy
属性,然后根据需要配置
TIdSocksInfo
。所有这些都可以在设计时或运行时完成。

Indy已经有一个内置框架,用于通过代理连接任何TCP客户端组件。您只需将所需的代理组件附加到客户端组件,然后客户端将自动连接到代理并告诉它连接到何处。如果需要通过多个代理进行连接,则可以链接代理组件

默认情况下,Indy 10为SOCKS 4/4a/5代理提供了两个代理组件—
TIdSocksInfo
,为HTTP代理提供了
tidconnectthroughttpproxy
(使用HTTP
CONNECT
方法)。但该框架具有足够的通用性,如果需要实现其他代理协议,则可以派生新类


在您的情况下,在连接到服务器之前,为
TIdIMAP4.IOHandler
属性分配
TIdIOHandlerStack
组件,然后将
TIdSocksInfo
组件分配给
TIdIOHandlerStack.TransparentProxy
属性,然后根据需要配置
TIdSocksInfo
。所有这些都可以在设计时或运行时完成。

太好了!谢谢你,雷米。还有一件事-有没有直接的方法让TIdSocksInfo使用系统的代理设置?没有。没有“系统代理设置”这样的东西。即使有,它也将高度依赖于平台。也许您正在考虑WinInet自己的全局代理设置?这不是全系统的。您必须向WinInet本身询问该设置。否则,您可以使用诸如Web代理自动发现(WPAD)之类的协议来检测网络上的代理。但是无论哪种方式,您都必须根据需要将相关值分配给
TIdSocksInfo
。很抱歉,直到今天我才开始实现socks5。。。因此,我尝试了,并意识到我的TidImap4已经有了一个
IOHandler
-
TidsLioHandlerSocketOpenSSL
,在这个案例中,如何与另一个
IOHandlerStack
连锁?谢谢。@EdwinYip
TransparentProxy
属性由
TIdIOHandlerSocket
公开,而
TIdIOHandlerStack
TIdSSLIOHandlerSocketOpenSSL
都是从中派生出来的。现在,您可以将
tidsliohandlersocketopenssl
tidsliohandlersocketopenssl一起使用。太好了!谢谢你,雷米。还有一件事-有没有直接的方法让TIdSocksInfo使用系统的代理设置?没有。没有“系统代理设置”这样的东西。即使有,它也将高度依赖于平台。也许您正在考虑WinInet自己的全局代理设置?这不是全系统的。你得问问WinInet