Тип SocketAddrV6
Тип SocketAddrV6 представляет собой
комбинацию IPv6-адреса и номера порта.
Он используется для хранения адреса сокета
в сетях, работающих по протоколу IPv6.
Структура содержит адрес типа Ipv6Addr,
номер порта типа u16, а также
идентификатор потока и область видимости.
Создать значение можно с помощью метода
new, который принимает адрес,
порт, идентификатор потока и индекс области видимости.
Синтаксис
SocketAddrV6::new(ip, port, flowinfo, scope_id)
Параметры метода new:
-
ip- IPv6-адрес типаIpv6Addr -
port- номер порта типаu16 -
flowinfo- идентификатор потока типаu32 -
scope_id- индекс области видимости типаu32
Пример
Давайте создадим IPv6-адрес сокета
с адресом ::1 и портом 8080:
use std::net::{SocketAddrV6, Ipv6Addr};
fn main()
{
let ip = Ipv6Addr::LOCALHOST;
let addr = SocketAddrV6::new(ip, 8080, 0, 0);
println!("{}", addr);
}
Результат выполнения кода:
[::1]:8080
Пример
Давайте создадим IPv6-адрес сокета
из строки с помощью метода parse:
use std::net::SocketAddrV6;
fn main()
{
let addr: SocketAddrV6 = "[2001:db8::1]:443".parse().unwrap();
println!("{}", addr);
}
Результат выполнения кода:
[2001:db8::1]:443
Пример
Давайте получим IP-адрес и порт из значения
SocketAddrV6 с помощью методов
ip и port:
use std::net::{SocketAddrV6, Ipv6Addr};
fn main()
{
let addr = SocketAddrV6::new(Ipv6Addr::LOCALHOST, 3000, 0, 0);
println!("ip: {}", addr.ip());
println!("port: {}", addr.port());
}
Результат выполнения кода:
ip: ::1
port: 3000
Смотрите также
-
тип
SocketAddr,
который представляет адрес сокета для IPv4 или IPv6 -
тип
SocketAddrV4,
который представляет IPv4-адрес вместе с портом -
тип
Ipv6Addr,
который представляет IPv6-адрес -
тип
ToSocketAddrs,
который используется для преобразования в адреса сокетов