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 2012-02-16 11:57:58
如何避免發送消息給自己? – yonutix 2015-05-06 08:56:51
@yonutix不,它的目的是向所有人發送信息(包括自我)。 – MicroCheapFx 2016-11-17 09:39:03