12
boost::asio
を使用してローカルネットワーク内のすべてのコンピュータにUDPメッセージをブロードキャストします。例を挙げて取り組んで私はboost :: asio UDPブロードキャスト
try {
socket.open(boost::asio::ip::udp::v4());
boost::asio::socket_base::broadcast option(true);
socket.set_option(option);
endpoint = boost::asio::ip::udp::endpoint(
boost::asio::ip::address::from_string("192.168.1.255"),
port);
}
catch(std::exception &e) {
}
を思い付いたと
while(!queue.empty()) {
std::string message = queue.front();
boost::system::error_code ignored_error;
socket.send_to(
boost::asio::buffer(message),
endpoint,
0, ignored_error);
queue.pop_front();
}
と私のキューからメッセージをブロードキャストしたいが、私のコードは、最初のコードブロック内の例外invalid argument
例外をスローします。しかし、それは127.0.0.1
でもうまく動作します。私は間違って何をしていますか?
作品。ありがとう。 – nijansen
メッセージを自分宛に送信しないようにするにはどうすればよいですか? – yonutix
@yonutixいいえ、それはすべてにメッセージを送信するための放送の目的です(と自己が含まれているため)。 – MicroCheapFx