最近我写了一些应用程序,它创建了许多线程并作为客户端连接到不同的服务器,我使用了套接字,然后我意识到我可以用 boost 库来做到这一点,所以我重写了应用程序来提升部分连接工作得很好,部分给了这个错误:
找不到主机(权威)
我不知道为什么会发生这种情况,当我使用 getaddrbyhost 时,它运行良好,但是 boost 解析器给出了这个错误......可能有什么问题,每个地址都是域。
以下是部分代码:
class client
{
public:
client(boost::asio::io_service& io_service,
const char* server, const char* port, const int i)
: resolver_(io_service),
socket_(io_service),
i_(i)
{
tcp::resolver::query query(tcp::v4(), boost::lexical_cast< std::string >( server ), boost::lexical_cast< std::string >( port ), boost::asio::ip::resolver_query_base::numeric_service);
resolver_.async_resolve(query,
boost::bind(&client::handle_resolve, this,
boost::asio::placeholders::error,
boost::asio::placeholders::iterator));
}
private:
void handle_resolve(const boost::system::error_code& err,
tcp::resolver::iterator endpoint_iterator)
{
if (!err)
{
boost::asio::async_connect(socket_, endpoint_iterator,
boost::bind(&client::handle_connect, this,
boost::asio::placeholders::error));
}
else
{
//here outputs error
std::cout << __FUNCTION__ << " Error: " << err.message() << "\n";
}
}
昨天编辑 完全奇怪我遇到了问题,今天它工作了......嗯,也许 dhcp 很忙或什么的