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