Метод set_broadcast
Метод set_broadcast включает или выключает
режим широковещательной рассылки (broadcast)
для UDP-сокета. Параметром метод принимает
логическое значение: true для включения
широковещательной рассылки и false
для её выключения. Метод возвращает Result
с типом в случае успеха или ошибку
io::Error, если установить режим не удалось.
По умолчанию широковещательная рассылка выключена.
Синтаксис
socket.set_broadcast(broadcast)
Пример
Давайте создадим UDP-сокет и включим для него режим широковещательной рассылки:
use std::net::UdpSocket;
fn main()
{
let socket = UdpSocket::bind("0.0.0.0:0").unwrap();
socket.set_broadcast(true).unwrap();
println!("broadcast enabled");
}
Результат выполнения кода:
"broadcast enabled"
Пример
Давайте проверим, что после включения режима широковещательной рассылки сокет может отправлять данные на широковещательный адрес:
use std::net::UdpSocket;
fn main()
{
let socket = UdpSocket::bind("0.0.0.0:0").unwrap();
socket.set_broadcast(true).unwrap();
let res = socket.send_to(b"hello", "255.255.255.255:8080");
println!("{:?}", res);
}
Результат выполнения кода:
Ok(5)
Пример
Давайте выключим режим широковещательной
рассылки, передав в метод false:
use std::net::UdpSocket;
fn main()
{
let socket = UdpSocket::bind("0.0.0.0:0").unwrap();
socket.set_broadcast(true).unwrap();
socket.set_broadcast(false).unwrap();
println!("broadcast disabled");
}
Результат выполнения кода:
"broadcast disabled"