Простой широковещательный сервер udp, использующий boost :: asio - PullRequest
0 голосов
/ 26 февраля 2019

Я пытался построить простейший сервер широковещательной передачи 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.Я ожидаю, что сервер отправит данные без ошибок, и тогда клиенты подключатся.
Что-то не так с моими ожиданиями или с кодом?

...