使用boost :: asio的简单udp广播服务器

时间:2019-02-26 09:03:41

标签: c++ sockets boost-asio broadcast

我尝试使用boost::asio构建最简单的udp广播服务器
这是我的代码,受答案to this question启发:

#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。我希望服务器发送数据没有错误,然后客户端将连接。
我的期望或代码有问题吗?

0 个答案:

没有答案
相关问题