【发布时间】:2020-09-11 14:52:40
【问题描述】:
我正在尝试创建一个简单的代理服务器。我想在port_ 连接到远程host_(可能是google.com),并转发请求req_buf_to_send。以下是我的代码:
boost::asio::io_service io_service;
tcp::resolver resolver(io_service);
tcp::resolver::query query(host_, port_string, boost::asio::ip::resolver_query_base::numeric_service);
tcp::resolver::iterator endpoint_iterator = resolver.resolve(query);
tcp::socket socket(io_service);
tcp::endpoint connectionEndpoint(endpoint_iterator->endpoint().address(), port_);
boost::system::error_code ec;
socket.connect(connectionEndpoint, ec);
boost::asio::write(socket, req_buf_to_send);
当我运行上述代码并向其发送需要转发的请求时,代码失败并引发异常:
Exception: resolve: Host not found (authoritative)
我也对上述代码进行了单元测试,但也失败了,说:
C++ exception with description "resolve: Service not found" thrown in the test body.
所以,我的解析器逻辑似乎有问题。谁能帮帮我?
谢谢。
【问题讨论】:
标签: c++ sockets boost tcp boost-asio