Desidero trasmettere messaggi UDP a tutti i computer in una rete locale utilizzando boost::asio
. Lavorando attraverso gli esempi che si avvicinò conboost :: broadcasting 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) {
}
e voglio trasmettere messaggi dal mio coda con
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();
}
ma il mio codice genera un'eccezione invalid argument
eccezione nel primo blocco di codice. Funziona bene per 127.0.0.1
però. Che cosa sto facendo di sbagliato?
funziona perfettamente. Grazie. – nijansen
Come si può evitare di inviare messaggi a se stessi? – yonutix
@yonutix No, è lo scopo della trasmissione di inviare messaggi a tutti (e il sé è quindi incluso). – MicroCheapFx