通过代理服务器增强asio套接字连接

时间:2013-02-14 19:19:09

标签: c++ sockets networking proxy boost-asio

我有一个客户端/服务器设置,使用boost的asio套接字相互通信。该协议是微不足道的,它以64位值开头,表示以下数据有多长,其余数据以JSON形式出现。

问题是,它不支持客户端和服务器之间的代理,现在我们需要支持它。

正如我在网上看到的,看起来代理通常非常简单。对于HTTP代理,您可以联系代理并为其提供所需实际URL的CONNECT请求,并且只是传递内容。

但我还没有理解如何将其与非HTTP数据进行协调。

  1. 我是否需要更改“协议”以使其与代理一起使用 服务器?我看到了这个建议:

    CONNECT http://my.server.com:80 HTTP/1.0\r\n\r\n

    但是如何处理我的非协议?

  2. 我试过告诉它我正在使用HTTP然后发送 接下来是JSON数据但是遇到了一系列问题 我不知道问题是否只是我的问题 实施或如果我想做的事情根本不起作用。

  3. 如果我完全离开这里,我很乐意被理顺。

1 个答案:

答案 0 :(得分:0)

我不认为搭载HTTP代理是正确的解决方案。现在你有

Client <---------> Server

但你想要

Client <------> proxy <------> Server

我建议你自己编写代理。它将像您的服务器一样成为守护进程,并且应该说出您的客户端和服务器协议。协议可能需要修改,以便代理知道服务器地址和服务。同样,客户端需要其他信息才能连接到代理而不是服务器。