У меня возникают проблемы с подразделением вещания udp приложения. Я использую импульс 1.62.0 под окнами 10.udp broadcast using boost :: asio под окнами
void test_udp_broadcast(void)
{
boost::asio::io_service io_service;
boost::asio::ip::udp::socket socket(io_service);
boost::asio::ip::udp::endpoint remote_endpoint;
socket.open(boost::asio::ip::udp::v4());
socket.set_option(boost::asio::ip::udp::socket::reuse_address(true));
socket.set_option(boost::asio::socket_base::broadcast(true));
remote_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::address_v4::any(), 4000);
try {
socket.bind(remote_endpoint);
socket.send_to(boost::asio::buffer("abc", 3), remote_endpoint);
} catch (boost::system::system_error e) {
std::cout << e.what() << std::endl;
}
}
я получаю: send_to: Запрошенный адрес не является действительным в контексте Из улова.
Я попытался изменить конечную точку из любого() в broadcast(), однако это только порождает ту же ошибку при bind().
Я обычно программирую под linux, и этот код работает на моей обычной цели. Поэтому я почесываю голову о том, что я здесь делаю неправильно. Может ли кто-нибудь дать мне совать в правильном направлении?
Спасибо, что это то, что мне не хватало. – Aumnayan