|
Boost Users : |
Subject: Re: [Boost-users] boost::asio::ip::tcp::resolver::query does not work in Ubuntu!!!
From: mozdemir (mozdemir76_at_[hidden])
Date: 2012-05-12 22:39:39
Hi Andreas,
I have changed the code like below in the light of the link you sent.
it did help for sure. The stats comparing both case are:
1. Without res_init(), the frequency is around 6 exceptions after 2047
resolutions:
totalRes: 2047 errorNum: 6 Error: Host not found (authoritative)
2. with res_init(), in the first run i saw 2 exceptions out of 2000 but
later on i run it long time and did not see any exceptions!
Hopefully, this is the right fix. I leave the code below to help others.
Thanks a lot,
mustafa
================================================
#include <iostream>
#include <boost/asio/ip/tcp.hpp>
#include <boost/lexical_cast.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <boost/thread.hpp>
#include <resolv.h>
using namespace boost::asio;
int main(int argc, char* argv[])
{
io_service ios;
int errorNum = 0;
int totalRes = 0;
while (true) {
try {
int i;
for (i=0;i<1000;i++) {
res_init();
int m_port = 80;
std::string m_host = "www.yahoo.com";
boost::system::error_code ec;
boost::asio::ip::tcp::resolver resolver( ios );
boost::asio::ip::tcp::resolver::query query( m_host,
boost::lexical_cast< std::string >( m_port ));
boost::asio::ip::tcp::resolver::iterator endpointIterator =
resolver.resolve( query );
for (;endpointIterator != ip::tcp::resolver_iterator();
++endpointIterator) {
std::cout << "i: " << i << " ip: " <<
endpointIterator->endpoint().address().to_string() << std::endl;
totalRes++;
}
boost::this_thread::sleep(boost::posix_time::milliseconds(
100 ));
}
} catch (std::exception const& ex) {
errorNum++;
std::cerr << "totalRes: " << totalRes << " errorNum: " <<
errorNum <<" Error: " << ex.what() << '\n';
boost::this_thread::sleep(boost::posix_time::milliseconds( 3000
));
}
}
return 0;
}
========================================================
-- View this message in context: http://boost.2283326.n4.nabble.com/boost-asio-ip-tcp-resolver-query-does-not-work-in-Ubuntu-tp4628195p4629904.html Sent from the Boost - Users mailing list archive at Nabble.com.
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net