2016-10-11 8 views
0

ローカルネットワークを介して1秒に1回マルチキャストメッセージを送信するアプリケーションがあります。このコードは、WindowsとmacOSの両方でうまく動作しています。ネットワークがインターネットに接続されていない限り、iOSでは正常に動作します。iOS上でASIOエラー「Host not found」が発生する

 boost::asio::ip::tcp::resolver resolver(m_IOservice); 
     boost::system::error_code ec; 
     boost::asio::ip::tcp::resolver::query query(boost::asio::ip::host_name(),""); 
     boost::asio::ip::tcp::resolver::iterator it = resolver.resolve(query, ec); 
     boost::asio::ip::address interface_ip_address; 

     while(it!=boost::asio::ip::tcp::resolver::iterator()) 
     { 
      interface_ip_address = (it++)->endpoint().address(); 
      if(interface_ip_address.is_v4()) 
      { 
       // Message sending code here 
      } 
     } 

問題はresolver.resolve()で「ホストが見つかりません(権限)」というエラーが発生した場合に発生します。

私はこのエラーがなぜ起こっているのか、そしてどうしてそれを修正するのかは本当に分かりません。誰でも私のためにそれに光を当てることができますか?

答えて

0

host_nameは何を返しますか?おそらく解決しない名前を返します。

ローカルホストだけの場合は、boost::asio::ip::addressv4()、さらにはboost::asio::ip::address::from_string("127.0.0.1")を使用します。

代わりにあなたの/etc/hostsファイルにエントリを追加します。

127.0.0.1 thehostnametoresolvetolocalhost 
関連する問題