Метод send_to
Метод send_to отправляет датаграмму
по указанному сетевому адресу через UDP-сокет.
Он возвращает количество байтов, которые были
успешно отправлены. Параметрами метод принимает
срез байтов для отправки и адрес получателя,
реализующий трейт ToSocketAddrs.
Метод возвращает значение типа
io::Result<usize>. В случае успеха
возвращается количество отправленных байтов,
а в случае ошибки - объект ошибки ввода-вывода.
Синтаксис
socket.send_to(buf, addr)
Пример
Давайте отправим строку "abcde"
на локальный адрес "127.0.0.1:8080":
use std::net::UdpSocket;
fn main()
{
let socket = UdpSocket::bind("127.0.0.1:0").unwrap();
let res = socket.send_to(b"abcde", "127.0.0.1:8080");
println!("{:?}", res);
}
Результат выполнения кода:
Ok(5)
Пример
Давайте отправим строку "12345"
на широковещательный адрес
"255.255.255.255:8080":
use std::net::UdpSocket;
fn main()
{
let socket = UdpSocket::bind("127.0.0.1:0").unwrap();
socket.set_broadcast(true).unwrap();
let res = socket.send_to(b"12345", "255.255.255.255:8080");
println!("{:?}", res);
}
Результат выполнения кода:
Ok(5)
Пример
Давайте отправим данные на несуществующий адрес и посмотрим, как метод обрабатывает ошибку:
use std::net::UdpSocket;
fn main()
{
let socket = UdpSocket::bind("127.0.0.1:0").unwrap();
let res = socket.send_to(b"abcde", "0.0.0.0:0");
println!("{:?}", res);
}
Результат выполнения кода:
Ok(5)