2009-10-04 9 views

Répondre

7

Dans one post in the boost mailing list quelqu'un d'autre semblait le faire comme ça (copié, reformaté, numéro de service a changé, rien d'autre):

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

Comme vous avez dit correctement, voici un service est encore passé, mais un pas dans le code Boost.Asio a révélé ce (en resolver_service.hpp, j'utilise le vieux plutôt 1,36 version):

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

Alors, rendez-vous avec 0, et il devrait faire ce que vous voulez.

+0

Prenez un pas que vous utilisez le numéro de port "ep (bai :: adresse_v4 (0xD155AB64), 80); // 209.85.171.100:80" – Artyom

+0

J'ai légèrement révisé l'exemple, j'espère que cela aide. – gimpf

Questions connexes