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.
ยงPortability
SocketAddr
is intended to be a portable representation of socket addresses and is likely not
the same as the internal socket address type used by the target operating systemโs API. Like all
repr(Rust)
structs, however, its exact layout remains undefined and should not be relied upon
between builds.
ยงExamples
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
#101035)
pub fn parse_ascii(b: &[u8]) -> Result<SocketAddr, AddrParseError>
addr_parse_ascii
#101035)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
pub const fn new(ip: IpAddr, port: u16) -> SocketAddr
Creates a new socket address from an IP address and a port number.
ยงExamples
1.7.0 (const: 1.69.0) ยท Sourcepub const fn ip(&self) -> IpAddr
pub const fn ip(&self) -> IpAddr
Returns the IP address associated with this socket address.
ยงExamples
1.9.0 (const: 1.87.0) ยท Sourcepub const fn set_ip(&mut self, new_ip: IpAddr)
pub const fn set_ip(&mut self, new_ip: IpAddr)
Changes the IP address associated with this socket address.
ยงExamples
1.0.0 (const: 1.69.0) ยท Sourcepub const fn port(&self) -> u16
pub const fn port(&self) -> u16
Returns the port number associated with this socket address.
ยงExamples
1.9.0 (const: 1.87.0) ยท Sourcepub const fn set_port(&mut self, new_port: u16)
pub const fn set_port(&mut self, new_port: u16)
Changes the port number associated with this socket address.
ยงExamples
1.16.0 (const: 1.69.0) ยท Sourcepub const fn is_ipv4(&self) -> bool
pub const fn is_ipv4(&self) -> bool
Returns true
if the IP address in this SocketAddr
is an
IPv4
address, and false
otherwise.
ยงExamples
1.16.0 (const: 1.69.0) ยท Sourcepub const fn is_ipv6(&self) -> bool
pub const fn is_ipv6(&self) -> bool
Returns true
if the IP address in this SocketAddr
is an
IPv6
address, and false
otherwise.
ยงExamples
Trait Implementationsยง
1.0.0 ยท Sourceยงimpl Clone for SocketAddr
impl Clone for SocketAddr
Sourceยงfn clone(&self) -> SocketAddr
fn clone(&self) -> SocketAddr
1.0.0 ยท Sourceยงfn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more1.0.0 ยท Sourceยงimpl Debug for SocketAddr
impl Debug for SocketAddr
1.0.0 ยท Sourceยงimpl Display for SocketAddr
impl Display for SocketAddr
1.17.0 ยท Sourceยงimpl<I> From<(I, u16)> for SocketAddr
impl<I> From<(I, u16)> for SocketAddr
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
.
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
.
1.0.0 ยท Sourceยงimpl FromStr for SocketAddr
impl FromStr for SocketAddr
Sourceยง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 more1.0.0 ยท Sourceยงimpl Hash for SocketAddr
impl Hash for SocketAddr
1.0.0 ยท 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,
1.0.0 ยท Sourceยงimpl PartialEq for SocketAddr
impl PartialEq for SocketAddr
1.0.0 ยท Sourceยงimpl PartialOrd for SocketAddr
impl PartialOrd for SocketAddr
1.0.0 ยท Sourceยงimpl ToSocketAddrs for SocketAddr
impl ToSocketAddrs for SocketAddr
Sourceยงtype Iter = IntoIter<SocketAddr>
type Iter = IntoIter<SocketAddr>
Sourceยงfn to_socket_addrs(&self) -> Result<IntoIter<SocketAddr>>
fn to_socket_addrs(&self) -> Result<IntoIter<SocketAddr>>
SocketAddr
s. Read more