En one post in the boost mailing list alguien más parecía hacerlo de esta manera (copiado, reformateado, servicio Número cambiado, nada más):
namespace bai = boost::asio::ip;
bai::tcp::endpoint ep(bai::address_v4(0xD155AB64), 0); // 209.85.171.100:0
boost::asio::io_service ios;
bai::tcp::resolver resolver(ios);
bai::tcp::resolver::iterator iter = resolver.resolve(ep);
bai::tcp::resolver::iterator end;
while (iter != end)
{
std::cerr << (*iter).host_name() << std::endl; // cg-in-f100.google.com
++iter;
}
Como usted ha dicho correctamente, aquí un servicio aún se pasa, sino una paso a través del código de Boost.Asio reveló esto (en resolver_service.hpp
, estoy usando la versión 1.36 en lugar de edad):
// First try resolving with the service name. If that fails try resolving
// but allow the service to be returned as a number.
por lo tanto, sólo tiene que ir con 0, y se debería hacer lo que quiera.
Tome un no que use el número de puerto "ep (bai :: address_v4 (0xD155AB64), 80); // 209.85.171.100:80" – Artyom
Revisé ligeramente el ejemplo, espero que ayude. – gimpf