是否可以在Delphi或C ++中创建HTTP隧道?
我的应用程序连接到多个不属于我所在公司的HTTP服务器。因此,我们的用户需要打开防火墙端口以允许这些连接。我想过在我的公司创建一个隧道,并通过这个隧道重定向我的应用程序发出的HTTP请求。这样,我的客户端只需要打开一个端口,隧道就会处理所有请求。所有请求都是使用indy组件使用POST或GET进行的。
编辑:我无法使用HTTP代理。我的一些用户已经拥有自己的HTTP代理,并且无法同时连接到两个不同的代理服务器。
答案 0 :(得分:2)
这是一个免费的组件有点旧,但它的工作原理你可以从那里获得灵感
或者你可以尝试这个样本
https://sites.google.com/site/delphibasics/home/delphibasicssnippets/examplesocks4proxybyaphex
https://sites.google.com/site/delphibasics/home/delphibasicssnippets/multi-threadedhttpproxyserver
答案 1 :(得分:1)
正如Warren P.和Rob Kennedy所说,你真的需要一个代理服务器。不要自己写一个隧道,这是一个巨大的矫枉过正,这远非易事(编写一个强大的套接字应用程序比它最初看起来更耗时)。
如果你想要一些简单的东西,请查看datapipe.c
或netcat(nc
)unix命令。 SSH也可以创建隧道(查看OpenSSH和PuTTy文档)。
答案 2 :(得分:1)
这是一个免费的开源HTTP-Tunnel和UDP-Tunnel:http://barbatunnel.codeplex.com/