Enum kvarn::prelude::net::SocketAddr
1.0.0 · source · pub enum SocketAddr {
V4(SocketAddrV4),
V6(SocketAddrV6),
}
Expand description
An internet socket address, either IPv4 or IPv6.
Internet socket addresses consist of an IP address, a 16-bit port number, as well
as possibly some version-dependent additional information. See SocketAddrV4
’s and
SocketAddrV6
’s respective documentation for more details.
The size of a SocketAddr
instance may vary depending on the target operating
system.
Examples
use std::net::{IpAddr, Ipv4Addr, SocketAddr};
let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
assert_eq!("127.0.0.1:8080".parse(), Ok(socket));
assert_eq!(socket.port(), 8080);
assert_eq!(socket.is_ipv4(), true);
Variants§
Implementations§
source§impl SocketAddr
impl SocketAddr
sourcepub fn parse_ascii(b: &[u8]) -> Result<SocketAddr, AddrParseError>
🔬This is a nightly-only experimental API. (addr_parse_ascii
)Available on non-crate feature miri-test-libstd
only.
pub fn parse_ascii(b: &[u8]) -> Result<SocketAddr, AddrParseError>
addr_parse_ascii
)miri-test-libstd
only.Parse a socket address from a slice of bytes.
#![feature(addr_parse_ascii)]
use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr};
let socket_v4 = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
let socket_v6 = SocketAddr::new(IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1)), 8080);
assert_eq!(SocketAddr::parse_ascii(b"127.0.0.1:8080"), Ok(socket_v4));
assert_eq!(SocketAddr::parse_ascii(b"[::1]:8080"), Ok(socket_v6));
source§impl SocketAddr
impl SocketAddr
1.7.0 (const: 1.69.0) · sourcepub const fn new(ip: IpAddr, port: u16) -> SocketAddr
Available on non-crate feature miri-test-libstd
only.
pub const fn new(ip: IpAddr, port: u16) -> SocketAddr
miri-test-libstd
only.Creates a new socket address from an IP address and a port number.
Examples
use std::net::{IpAddr, Ipv4Addr, SocketAddr};
let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
assert_eq!(socket.ip(), IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)));
assert_eq!(socket.port(), 8080);
1.7.0 (const: 1.69.0) · sourcepub const fn ip(&self) -> IpAddr
Available on non-crate feature miri-test-libstd
only.
pub const fn ip(&self) -> IpAddr
miri-test-libstd
only.Returns the IP address associated with this socket address.
Examples
use std::net::{IpAddr, Ipv4Addr, SocketAddr};
let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
assert_eq!(socket.ip(), IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)));
1.9.0 · sourcepub fn set_ip(&mut self, new_ip: IpAddr)
Available on non-crate feature miri-test-libstd
only.
pub fn set_ip(&mut self, new_ip: IpAddr)
miri-test-libstd
only.Changes the IP address associated with this socket address.
Examples
use std::net::{IpAddr, Ipv4Addr, SocketAddr};
let mut socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
socket.set_ip(IpAddr::V4(Ipv4Addr::new(10, 10, 0, 1)));
assert_eq!(socket.ip(), IpAddr::V4(Ipv4Addr::new(10, 10, 0, 1)));
const: 1.69.0 · sourcepub const fn port(&self) -> u16
Available on non-crate feature miri-test-libstd
only.
pub const fn port(&self) -> u16
miri-test-libstd
only.Returns the port number associated with this socket address.
Examples
use std::net::{IpAddr, Ipv4Addr, SocketAddr};
let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
assert_eq!(socket.port(), 8080);
1.9.0 · sourcepub fn set_port(&mut self, new_port: u16)
Available on non-crate feature miri-test-libstd
only.
pub fn set_port(&mut self, new_port: u16)
miri-test-libstd
only.Changes the port number associated with this socket address.
Examples
use std::net::{IpAddr, Ipv4Addr, SocketAddr};
let mut socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
socket.set_port(1025);
assert_eq!(socket.port(), 1025);
1.16.0 (const: 1.69.0) · sourcepub const fn is_ipv4(&self) -> bool
Available on non-crate feature miri-test-libstd
only.
pub const fn is_ipv4(&self) -> bool
miri-test-libstd
only.Returns true
if the IP address in this SocketAddr
is an
IPv4
address, and false
otherwise.
Examples
use std::net::{IpAddr, Ipv4Addr, SocketAddr};
let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
assert_eq!(socket.is_ipv4(), true);
assert_eq!(socket.is_ipv6(), false);
1.16.0 (const: 1.69.0) · sourcepub const fn is_ipv6(&self) -> bool
Available on non-crate feature miri-test-libstd
only.
pub const fn is_ipv6(&self) -> bool
miri-test-libstd
only.Returns true
if the IP address in this SocketAddr
is an
IPv6
address, and false
otherwise.
Examples
use std::net::{IpAddr, Ipv6Addr, SocketAddr};
let socket = SocketAddr::new(IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 65535, 0, 1)), 8080);
assert_eq!(socket.is_ipv4(), false);
assert_eq!(socket.is_ipv6(), true);
Trait Implementations§
source§impl Clone for SocketAddr
impl Clone for SocketAddr
source§fn clone(&self) -> SocketAddr
fn clone(&self) -> SocketAddr
source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for SocketAddr
impl Debug for SocketAddr
source§impl Display for SocketAddr
impl Display for SocketAddr
1.17.0 · source§impl<I> From<(I, u16)> for SocketAddrwhere
I: Into<IpAddr>,
impl<I> From<(I, u16)> for SocketAddrwhere I: Into<IpAddr>,
source§fn from(pieces: (I, u16)) -> SocketAddr
fn from(pieces: (I, u16)) -> SocketAddr
Converts a tuple struct (Into<IpAddr
>, u16
) into a SocketAddr
.
This conversion creates a SocketAddr::V4
for an IpAddr::V4
and creates a SocketAddr::V6
for an IpAddr::V6
.
u16
is treated as port of the newly created SocketAddr
.
source§impl From<SocketAddr> for SockAddr
impl From<SocketAddr> for SockAddr
source§fn from(addr: SocketAddr) -> SockAddr
fn from(addr: SocketAddr) -> SockAddr
§impl From<SocketAddr> for SockAddr
impl From<SocketAddr> for SockAddr
§fn from(addr: SocketAddr) -> SockAddr
fn from(addr: SocketAddr) -> SockAddr
1.16.0 · source§impl From<SocketAddrV4> for SocketAddr
impl From<SocketAddrV4> for SocketAddr
source§fn from(sock4: SocketAddrV4) -> SocketAddr
fn from(sock4: SocketAddrV4) -> SocketAddr
Converts a SocketAddrV4
into a SocketAddr::V4
.
1.16.0 · source§impl From<SocketAddrV6> for SocketAddr
impl From<SocketAddrV6> for SocketAddr
source§fn from(sock6: SocketAddrV6) -> SocketAddr
fn from(sock6: SocketAddrV6) -> SocketAddr
Converts a SocketAddrV6
into a SocketAddr::V6
.
source§impl FromStr for SocketAddr
impl FromStr for SocketAddr
§type Err = AddrParseError
type Err = AddrParseError
source§fn from_str(s: &str) -> Result<SocketAddr, AddrParseError>
fn from_str(s: &str) -> Result<SocketAddr, AddrParseError>
s
to return a value of this type. Read moresource§impl Hash for SocketAddr
impl Hash for SocketAddr
source§impl Ord for SocketAddr
impl Ord for SocketAddr
source§fn cmp(&self, other: &SocketAddr) -> Ordering
fn cmp(&self, other: &SocketAddr) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere Self: Sized,
source§impl PartialEq<SocketAddr> for SocketAddr
impl PartialEq<SocketAddr> for SocketAddr
source§impl PartialOrd<SocketAddr> for SocketAddr
impl PartialOrd<SocketAddr> for SocketAddr
source§impl ToSocketAddrs for SocketAddr
impl ToSocketAddrs for SocketAddr
§type Iter = IntoIter<SocketAddr>
type Iter = IntoIter<SocketAddr>
source§fn to_socket_addrs(&self) -> Result<IntoIter<SocketAddr>, Error>
fn to_socket_addrs(&self) -> Result<IntoIter<SocketAddr>, Error>
SocketAddr
s. Read moreimpl Copy for SocketAddr
impl Eq for SocketAddr
impl StructuralEq for SocketAddr
impl StructuralPartialEq for SocketAddr
impl ToSocketAddrs for SocketAddr
Auto Trait Implementations§
impl RefUnwindSafe for SocketAddr
impl Send for SocketAddr
impl Sync for SocketAddr
impl Unpin for SocketAddr
impl UnwindSafe for SocketAddr
Blanket Implementations§
source§impl<T> AsCleanDebug for Twhere
T: Display,
impl<T> AsCleanDebug for Twhere T: Display,
source§fn as_clean(&self) -> CleanDebug<'_, Self>where
Self: Display,
fn as_clean(&self) -> CleanDebug<'_, Self>where Self: Display,
CleanDebug
for Self. Read more§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere T: 'a,
source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> ToCompactString for Twhere
T: Display,
impl<T> ToCompactString for Twhere T: Display,
§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
CompactString
. Read more