2016-11-10 12 views
0

アプリケーションのudpブロードキャストサブセクションに問題があります。 send_to:要求されたアドレスがキャッチから、そのコンテキスト には有効ではありませんが、私は私が受け取るudpブロードキャストを使ってboost :: asioをウィンドウ下に表示

void test_udp_broadcast(void) 
{ 
    boost::asio::io_service io_service; 
    boost::asio::ip::udp::socket socket(io_service); 
    boost::asio::ip::udp::endpoint remote_endpoint; 

    socket.open(boost::asio::ip::udp::v4()); 
    socket.set_option(boost::asio::ip::udp::socket::reuse_address(true)); 
    socket.set_option(boost::asio::socket_base::broadcast(true)); 
    remote_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::address_v4::any(), 4000); 

    try { 
    socket.bind(remote_endpoint); 
    socket.send_to(boost::asio::buffer("abc", 3), remote_endpoint); 
    } catch (boost::system::system_error e) { 
    std::cout << e.what() << std::endl; 
    } 
} 

10の窓の下にブースト1.62.0を使用しています。

エンドポイントをany()からbroadcast()に変更しようとしましたが、bind()で同じエラーが発生します。

私は通常、linuxでプログラムを作成していますが、このコードは通常のターゲットで動作します。だから私はここで間違っていることについて私の頭を傷つけている。誰も私に正しい方向に突っ込むことはできますか?

答えて

3

ブロードキャストパケットを受信する場合は、any()を使用してソケットをローカルエンドポイントにバインドし、ブロードキャスト()を使用してリモートエンドポイントに送信したいと考えています(this question参照)。

私のために、次のコンパイルし、エラーをスローしません:

void test_udp_broadcast(void) 
{ 
    boost::asio::io_service io_service; 
    boost::asio::ip::udp::socket socket(io_service); 
    boost::asio::ip::udp::endpoint local_endpoint; 
    boost::asio::ip::udp::endpoint remote_endpoint; 

    socket.open(boost::asio::ip::udp::v4()); 
    socket.set_option(boost::asio::ip::udp::socket::reuse_address(true)); 
    socket.set_option(boost::asio::socket_base::broadcast(true)); 
    local_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::address_v4::any(), 4000); 
    remote_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::address_v4::broadcast(), 4000); 

    try { 
    socket.bind(local_endpoint); 
    socket.send_to(boost::asio::buffer("abc", 3), remote_endpoint); 
    } catch (boost::system::system_error e) { 
    std::cout << e.what() << std::endl; 
    } 
} 
+0

はそれは私が欠けていたものです、ありがとうございました。 – Aumnayan

関連する問題