3

"No such device"次のコードは、マルチキャスト グループに参加しようとすると (set_option呼び出し) 、例外をスローします。

#include <boost/asio.hpp>

int main(){
    const std::string recv_addr = "232.4.130.147";
    const int recv_port = 31338;

    boost::asio::io_service io_service;
    boost::asio::ip::udp::endpoint recv_endpoint(
                boost::asio::ip::address::from_string(recv_addr),
                recv_port);
    boost::asio::ip::udp::socket recv_sock(io_service, recv_endpoint);

    recv_sock.set_option(
            boost::asio::ip::multicast::join_group(
                boost::asio::ip::address::from_string(recv_addr).to_v4()
                ));
}

network-manager が実行されているかどうかに関係なく発生します。また、IPアドレスの設定に関係なく。

IP アドレスを手動で設定して内部ネットワークに接続すると、問題が発生します。IP が DHCP から取得される他のネットワークでは、問題はありません。

私はeth0常にインターフェイスを起動していますが、これが唯一のアクティブな非ローカル インターフェイスです。

ここに示されているようにリッスン インターフェイスを指定しようとしましたが、代わりに例外が発生"Invalid argument"し、Boost.Asio のドキュメントにはインターフェイスの設定について何も記載されていません

4

1 に答える 1

6

DHCPが機能していない場合、マルチキャストのルートはありません。

使用する:

route add -net 224.0.0.0/4 dev eth0
于 2012-04-13T11:51:21.563 に答える