Класс UdpSocket
Класс UdpSocket представляет собой UDP-сокет,
который позволяет отправлять и получать датаграммы
без установления соединения. Он предоставляет методы
для привязки к адресу, отправки данных, получения
данных, а также для настройки различных параметров
сокета, таких как широковещательная рассылка
и время жизни пакетов.
Синтаксис
use std::net::UdpSocket;
let socket = UdpSocket::bind("127.0.0.1:8080")?;
Пример
Давайте создадим UDP-сокет и привяжем его к локальному адресу:
use std::net::UdpSocket;
fn main()
{
let socket = UdpSocket::bind("127.0.0.1:8080").unwrap();
println!("Socket bound to {}", socket.local_addr().unwrap());
}
Результат выполнения кода:
Socket bound to 127.0.0.1:8080
Пример
Давайте отправим датаграмму на удалённый адрес
с помощью метода send_to:
use std::net::UdpSocket;
fn main()
{
let socket = UdpSocket::bind("127.0.0.1:0").unwrap();
let bytes_sent = socket.send_to(b"abcde", "127.0.0.1:8080").unwrap();
println!("Sent {} bytes", bytes_sent);
}
Результат выполнения кода:
Sent 5 bytes
Пример
Давайте получим датаграмму от удалённого адреса
с помощью метода recv_from:
use std::net::UdpSocket;
fn main()
{
let socket = UdpSocket::bind("127.0.0.1:8080").unwrap();
let mut buf = [0; 1024];
let (amt, src) = socket.recv_from(&mut buf).unwrap();
println!("Received {} bytes from {}", amt, src);
}
Результат выполнения кода:
Received 5 bytes from 127.0.0.1:54321
Смотрите также
-
метод
bind,
который привязывает сокет к указанному адресу -
метод
send_to,
который отправляет датаграмму на указанный адрес -
метод
recv_from,
который получает датаграмму от удалённого адреса -
метод
set_broadcast,
который включает или выключает широковещательную рассылку