Метод set_ttl
Метод set_ttl устанавливает значение TTL
для UDP-сокета. TTL определяет максимальное
количество переходов между маршрутизаторами,
которое может совершить пакет, прежде чем будет
отброшен. Параметром метод принимает число
типа u32, задающее новое значение TTL.
Метод возвращает результат типа
io::Result<()>. Если установка значения
прошла успешно, возвращается Ok(()),
в противном случае - ошибка Err.
Синтаксис
socket.set_ttl(ttl)
Пример
Давайте создадим UDP-сокет и установим для него
значение TTL, равное 64:
use std::net::UdpSocket;
fn main()
{
let socket = UdpSocket::bind("127.0.0.1:0").unwrap();
socket.set_ttl(64).unwrap();
println!("TTL set successfully");
}
Результат выполнения кода:
"TTL set successfully"
Пример
Давайте установим TTL и проверим его значение
через метод ttl:
use std::net::UdpSocket;
fn main()
{
let socket = UdpSocket::bind("127.0.0.1:0").unwrap();
socket.set_ttl(128).unwrap();
let ttl = socket.ttl().unwrap();
println!("{}", ttl);
}
Результат выполнения кода:
128
Пример
Давайте попробуем установить недопустимое значение TTL и обработаем возможную ошибку:
use std::net::UdpSocket;
fn main()
{
let socket = UdpSocket::bind("127.0.0.1:0").unwrap();
match socket.set_ttl(0) {
Ok(()) => println!("TTL set successfully"),
Err(e) => println!("Error: {}", e),
}
}
Результат выполнения кода:
"TTL set successfully"
Смотрите также
-
класс
UdpSocket,
который представляет UDP-сокет -
метод
bind,
который создаёт UDP-сокет и привязывает его к адресу -
метод
send_to,
который отправляет данные по указанному адресу -
метод
set_broadcast,
который включает или отключает широковещательную рассылку