Tôi muốn phát các tin nhắn UDP tới tất cả các máy tính trong mạng cục bộ bằng cách sử dụng boost::asio
. Làm việc thông qua các ví dụ tôi đã đưa raboost :: asio UDP phát sóng
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) {
}
và muốn quảng bá thông điệp từ hàng đợi của tôi với
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();
}
nhưng mã của tôi ném một ngoại lệ invalid argument
ngoại lệ trong khối mã đầu tiên. Nó hoạt động tốt cho 127.0.0.1
mặc dù. Tôi đang làm gì sai?
trình hoàn hảo. Cảm ơn. – nijansen
Làm cách nào để tránh gửi tin nhắn cho chính mình? – yonutix
@yonutix Không, đó là mục đích phát sóng để gửi tin nhắn cho tất cả (và tự là có cho). – MicroCheapFx