Я пытался построить простейший сервер широковещательной передачи udp, используя boost::asio
Вот мой код, вдохновленный ответом на этот вопрос :
#include <boost/asio.hpp>
#include <iostream>
const int port = 1356;
int main() {
boost::system::error_code error;
using boost::asio::ip::udp;
udp::endpoint endpoint(
boost::asio::ip::address::from_string("127.0.0.1"),
port);
boost::asio::io_service ios;
udp::socket sock(ios);
sock.open(udp::v4(), error);
if (error) {
std::cerr << "Error while opening socket\n";
return -1;
}
sock.set_option(udp::socket::reuse_address(true));
sock.set_option(boost::asio::socket_base::broadcast(true));
std::string data = "Hello world!";
while(true) {
sock.send_to(boost::asio::buffer(data), endpoint);
sleep(1);
}
return 0;
}
Он не работает, как яожидается.Я получил send: Connection refused
.Я ожидаю, что сервер отправит данные без ошибок, и тогда клиенты подключатся.
Что-то не так с моими ожиданиями или с кодом?