2009-10-04 13 views

risposta

7

In one post in the boost mailing list qualcun altro sembrava di fare in questo modo (copiato, riformattato, il servizio numero cambiato, niente altro):

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; 
} 

Come lei giustamente ha detto, qui un servizio è ancora passata, ma un passo attraverso il codice Boost.Asio rivelato questa (in resolver_service.hpp, sto usando il piuttosto vecchio 1.36 stampa):

// First try resolving with the service name. If that fails try resolving 
// but allow the service to be returned as a number. 

Quindi, basta andare con 0, e dovrebbe fare quello che vuoi.

+0

Non utilizzare il numero di porta "ep (bai :: address_v4 (0xD155AB64), 80); // 209.85.171.100:80" – Artyom

+0

Ho leggermente rivisto l'esempio, spero che sia d'aiuto. – gimpf

Problemi correlati