开始使用 http 隧道

Posted

技术标签:

【中文标题】开始使用 http 隧道【英文标题】:getting started with http tunneling 【发布时间】:2011-04-07 16:21:50 【问题描述】:

我将很快开始研究在不同机器上运行并通过网络进行通信的软件。我希望使用 HTTP 隧道进行通信,因此用户不需要打开防火墙端口。

该软件将使用 C++ 编写。我的问题是我真的不知道从哪里开始寻找有关实施 HTTP 隧道的资源。

我相信我可以为此使用 WCF - 这听起来是个好主意吗?走这条路有什么优点/缺点?

【问题讨论】:

【参考方案1】:

使用 WCF 之类的东西的好处是“通过”某些路由器的异常情况都可以为您处理。我说的是一些路由器具有的深度数据包检查,如果您发送的材料看起来不像干净的 html,它会将您发送的材料识别为“不可接受”。

另一方面,在 C++ 中使用 WCF 可能会很有趣。大概这意味着您愿意将代码编写为 C++/CLI。

不过,我认为您会发现您对网络框架的选择是次要问题。此外,您的网络控制逻辑将消耗您的时间。如果您正在进行任何数量的异步网络通信,请确保您受过良好的教育,并使用good state-machine tool。另请注意C# port。

附言如果您没有将托管客户端与 WCF 一起使用,请记住您的消息必须使用 XML 属性/属性按字母顺序进行序列化。否则你会得到莫名其妙的错误。如果我记得,空值也必须明确发送。

【讨论】:

以上是关于开始使用 http 隧道的主要内容,如果未能解决你的问题,请参考以下文章

HTTP隧道解决的问题

使用 ***Service 的 Android http 隧道

Http隧道通过C#(TCP)中的防火墙

关于 RTSP over HTTP 隧道的困惑

通过 ssh 隧道的 http 请求

进行 HTTP 隧道时如何保持连接打开