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