c++ - C++ socket.io 客户端通过 Tor 服务
问题描述
我正在尝试将 C++ 中的套接字请求发送到我使用 tor 服务和 node.js 托管的洋葱链接。我的 node.js 服务器托管在 port 上8080
。当我尝试向 发送套接字请求时localhost:8080
,它工作得非常好。
但是,当我尝试将它们发送到我的洋葱链接时,它不起作用。
我用来处理套接字的库是https://github.com/socketio/socket.io-client-cpp。
C++ 代码:
sio::client h;
connection_listener l(h);
h.set_open_listener(std::bind(&connection_listener::on_connected, &l));
h.set_close_listener(std::bind(&connection_listener::on_close, &l,std::placeholders::_1));
h.set_fail_listener(std::bind(&connection_listener::on_fail, &l));
h.connect("http://myonionlink.onion:8080/");
// it fails to connect to the onion link, but works perfectly fine with http://localhost:8080/
为什么这不适用于洋葱链接?在这种情况下,洋葱链接的工作方式是否不同?
有什么方法可以用来实现这一目标吗?
解决方案
我认为来自https://en.wikipedia.org/wiki/.onion的“.onion TLD 不在 Internet DNS 根目录中”的问题,在幕后库执行尝试在原始 IP 地址中解析您的 URL 并失败这是因为 DNS 表中没有适当的记录。
推荐阅读
- java - 透视矩阵的问题
- mysql - 在半复杂的 MySQL JOIN 语句中获取最新的 10 条记录
- html - 如何将页面中的内容调整为仅占用屏幕宽度?
- javascript - 添加时如何使用 Moment.js 以 24 小时格式返回时间?
- php - 从 JSON 对象中获取数据
- c - VST forward_call 在非标准调用约定上失败
- c# - 在本地发布时“没有这样的主机是已知的”,但在 Visual Studio 中调试时不知道
- google-sheets - 一天内调用了太多次服务:地理编码 ARRAY FORMULA
- php - Laravel 6.x 新密码。确认中间件不适用于自定义防护
- javascript - 使用 Javascript 过滤嵌套数组