Struct std::net::SocketAddrV6
1.0.0 · source · [−]pub struct SocketAddrV6 { /* private fields */ }Expand description
An IPv6 socket address.
IPv6 socket addresses consist of an IPv6 address, a 16-bit port number, as well
as fields containing the traffic class, the flow label, and a scope identifier
(see IETF RFC 2553, Section 3.3 for more details).
See SocketAddr for a type encompassing both IPv4 and IPv6 socket addresses.
The size of a SocketAddrV6 struct may vary depending on the target operating
system. Do not assume that this type has the same memory layout as the underlying
system representation.
Examples
use std::net::{Ipv6Addr, SocketAddrV6};
let socket = SocketAddrV6::new(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 1), 8080, 0, 0);
assert_eq!("[2001:db8::1]:8080".parse(), Ok(socket));
assert_eq!(socket.ip(), &Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 1));
assert_eq!(socket.port(), 8080);RunImplementations
impl SocketAddrV6
source
impl SocketAddrV6
sourcepub fn new(
ip: Ipv6Addr,
port: u16,
flowinfo: u32,
scope_id: u32
) -> SocketAddrV6
source
pub fn new(
ip: Ipv6Addr,
port: u16,
flowinfo: u32,
scope_id: u32
) -> SocketAddrV6
sourceCreates a new socket address from an IPv6 address, a 16-bit port number,
and the flowinfo and scope_id fields.
For more information on the meaning and layout of the flowinfo and scope_id
parameters, see IETF RFC 2553, Section 3.3.
Examples
use std::net::{SocketAddrV6, Ipv6Addr};
let socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 0);Runpub fn set_ip(&mut self, new_ip: Ipv6Addr)
1.9.0 · source
pub fn set_ip(&mut self, new_ip: Ipv6Addr)
1.9.0 · sourceChanges the IP address associated with this socket address.
Examples
use std::net::{SocketAddrV6, Ipv6Addr};
let mut socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 0);
socket.set_ip(Ipv6Addr::new(76, 45, 0, 0, 0, 0, 0, 0));
assert_eq!(socket.ip(), &Ipv6Addr::new(76, 45, 0, 0, 0, 0, 0, 0));Runpub fn flowinfo(&self) -> u32
const: unstable · source
pub fn flowinfo(&self) -> u32
const: unstable · sourceReturns the flow information associated with this address.
This information corresponds to the sin6_flowinfo field in C’s netinet/in.h,
as specified in IETF RFC 2553, Section 3.3.
It combines information about the flow label and the traffic class as specified
in IETF RFC 2460, respectively Section 6 and Section 7.
Examples
use std::net::{SocketAddrV6, Ipv6Addr};
let socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 10, 0);
assert_eq!(socket.flowinfo(), 10);Runpub fn set_flowinfo(&mut self, new_flowinfo: u32)
1.9.0 · source
pub fn set_flowinfo(&mut self, new_flowinfo: u32)
1.9.0 · sourceChanges the flow information associated with this socket address.
See SocketAddrV6::flowinfo’s documentation for more details.
Examples
use std::net::{SocketAddrV6, Ipv6Addr};
let mut socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 10, 0);
socket.set_flowinfo(56);
assert_eq!(socket.flowinfo(), 56);Runpub fn scope_id(&self) -> u32
const: unstable · source
pub fn scope_id(&self) -> u32
const: unstable · sourceReturns the scope ID associated with this address.
This information corresponds to the sin6_scope_id field in C’s netinet/in.h,
as specified in IETF RFC 2553, Section 3.3.
Examples
use std::net::{SocketAddrV6, Ipv6Addr};
let socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 78);
assert_eq!(socket.scope_id(), 78);Runpub fn set_scope_id(&mut self, new_scope_id: u32)
1.9.0 · source
pub fn set_scope_id(&mut self, new_scope_id: u32)
1.9.0 · sourceChanges the scope ID associated with this socket address.
See SocketAddrV6::scope_id’s documentation for more details.
Examples
use std::net::{SocketAddrV6, Ipv6Addr};
let mut socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 78);
socket.set_scope_id(42);
assert_eq!(socket.scope_id(), 42);RunTrait Implementations
impl Clone for SocketAddrV6
source
impl Clone for SocketAddrV6
sourcefn clone(&self) -> SocketAddrV6
source
fn clone(&self) -> SocketAddrV6
sourceReturns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
source
fn clone_from(&mut self, source: &Self)
sourcePerforms copy-assignment from source. Read more
impl Debug for SocketAddrV6
source
impl Debug for SocketAddrV6
sourceimpl Display for SocketAddrV6
source
impl Display for SocketAddrV6
sourceimpl From<SocketAddrV6> for SocketAddr
1.16.0 · source
impl From<SocketAddrV6> for SocketAddr
1.16.0 · sourcefn from(sock6: SocketAddrV6) -> SocketAddr
source
fn from(sock6: SocketAddrV6) -> SocketAddr
sourceConverts a SocketAddrV6 into a SocketAddr::V6.
impl FromStr for SocketAddrV6
1.5.0 · source
impl FromStr for SocketAddrV6
1.5.0 · sourcetype Err = AddrParseError
type Err = AddrParseError
The associated error which can be returned from parsing.
fn from_str(s: &str) -> Result<SocketAddrV6, AddrParseError>
source
fn from_str(s: &str) -> Result<SocketAddrV6, AddrParseError>
sourceParses a string s to return a value of this type. Read more
impl Hash for SocketAddrV6
source
impl Hash for SocketAddrV6
sourceimpl Ord for SocketAddrV6
1.45.0 · source
impl Ord for SocketAddrV6
1.45.0 · sourceimpl PartialEq<SocketAddrV6> for SocketAddrV6
source
impl PartialEq<SocketAddrV6> for SocketAddrV6
sourceimpl PartialOrd<SocketAddrV6> for SocketAddrV6
1.45.0 · source
impl PartialOrd<SocketAddrV6> for SocketAddrV6
1.45.0 · sourcefn partial_cmp(&self, other: &SocketAddrV6) -> Option<Ordering>
source
fn partial_cmp(&self, other: &SocketAddrV6) -> Option<Ordering>
sourceThis method returns an ordering between self and other values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool
source
fn lt(&self, other: &Rhs) -> bool
sourceThis method tests less than (for self and other) and is used by the < operator. Read more
fn le(&self, other: &Rhs) -> bool
source
fn le(&self, other: &Rhs) -> bool
sourceThis method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
impl ToSocketAddrs for SocketAddrV6
source
impl ToSocketAddrs for SocketAddrV6
sourcetype Iter = IntoIter<SocketAddr>
type Iter = IntoIter<SocketAddr>
Returned iterator over socket addresses which this type may correspond to. Read more
fn to_socket_addrs(&self) -> Result<IntoIter<SocketAddr>>
source
fn to_socket_addrs(&self) -> Result<IntoIter<SocketAddr>>
sourceConverts this object to an iterator of resolved SocketAddrs. Read more
impl Copy for SocketAddrV6
sourceimpl Eq for SocketAddrV6
sourceAuto Trait Implementations
impl RefUnwindSafe for SocketAddrV6
impl Send for SocketAddrV6
impl Sync for SocketAddrV6
impl Unpin for SocketAddrV6
impl UnwindSafe for SocketAddrV6
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
source
impl<T> BorrowMut<T> for T where
T: ?Sized,
sourcefn borrow_mut(&mut self) -> &mut T
const: unstable · source
fn borrow_mut(&mut self) -> &mut T
const: unstable · sourceMutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone,
source
impl<T> ToOwned for T where
T: Clone,
sourcetype Owned = T
type Owned = T
The resulting type after obtaining ownership.
fn clone_into(&self, target: &mut T)
source
fn clone_into(&self, target: &mut T)
sourceUses borrowed data to replace owned data, usually by cloning. Read more