2010-11-30 3 views
0

現在、IPv6対応のシンプルなサーバーアプリケーションを開発中です。 IPv6はWindows(MSVC2010を使用)ではうまく動作しますが、Linuxでは動作しません。それはWindows上で動作しますが、Linux上で印刷されたエラーメッセージは、 "ホストが見つからない(権威)" であるBoost asio:resolver :: queryでIPv6アドレスを使用すると、Win32では動作しますが、Linuxでは動作しません。

boost::system::error_code ec; 
std::string address="::1", service="http"; 
tcp::resolver resolver(io_service); 
tcp::resolver::query query(address, service); 
tcp::resolver::iterator resiter = resolver.resolve(query, ec); 

if (ec) 
    std::cout << "Cannot resolve address: " << address << "(" << ec.message() << ")" << std::endl; 

は、次のコードを想像してみてください。

ヒントは歓迎します。

+0

あなたのLinuxシステムでは、 '/ etc/hosts'はどのように見えますか? –

答えて

0

LinuxとWindowsでは、ネームサービスから返されたアドレスの検索順序が異なることがあります。異なるフラグを使用して、照会しているアドレスのタイプをより細かく制御してみてください。たとえば、この問合せではnumeric_hostフラグを使用できます。

関連する問題