Enum photonio_uring::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
V4(SocketAddrV4)
An IPv4 socket address.
V6(SocketAddrV6)
An IPv6 socket address.
Implementations
sourceimpl SocketAddr
impl SocketAddr
sourcepub fn parse_ascii(b: &[u8]) -> Result<SocketAddr, AddrParseError>
🔬This is a nightly-only experimental API. (addr_parse_ascii
)
pub fn parse_ascii(b: &[u8]) -> Result<SocketAddr, AddrParseError>
addr_parse_ascii
)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));
sourceimpl SocketAddr
impl SocketAddr
1.7.0 (const: unstable) · sourcepub fn new(ip: IpAddr, port: u16) -> SocketAddr
pub fn new(ip: IpAddr, port: u16) -> SocketAddr
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: unstable) · sourcepub fn ip(&self) -> IpAddr
pub fn ip(&self) -> IpAddr
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)
pub fn set_ip(&mut self, new_ip: IpAddr)
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: unstable · sourcepub fn port(&self) -> u16
pub fn port(&self) -> u16
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)
pub fn set_port(&mut self, new_port: u16)
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: unstable) · sourcepub fn is_ipv4(&self) -> bool
pub fn is_ipv4(&self) -> bool
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: unstable) · sourcepub fn is_ipv6(&self) -> bool
pub fn is_ipv6(&self) -> bool
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
sourceimpl Clone for SocketAddr
impl Clone for SocketAddr
sourcefn clone(&self) -> SocketAddr
fn clone(&self) -> SocketAddr
sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresourceimpl Debug for SocketAddr
impl Debug for SocketAddr
sourceimpl Display for SocketAddr
impl Display for SocketAddr
1.17.0 · sourceimpl<I> From<(I, u16)> for SocketAddrwhere
I: Into<IpAddr>,
impl<I> From<(I, u16)> for SocketAddrwhere
I: Into<IpAddr>,
sourcefn 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 · sourceimpl From<SocketAddrV4> for SocketAddr
impl From<SocketAddrV4> for SocketAddr
sourcefn from(sock4: SocketAddrV4) -> SocketAddr
fn from(sock4: SocketAddrV4) -> SocketAddr
Converts a SocketAddrV4
into a SocketAddr::V4
.
1.16.0 · sourceimpl From<SocketAddrV6> for SocketAddr
impl From<SocketAddrV6> for SocketAddr
sourcefn from(sock6: SocketAddrV6) -> SocketAddr
fn from(sock6: SocketAddrV6) -> SocketAddr
Converts a SocketAddrV6
into a SocketAddr::V6
.
sourceimpl FromStr for SocketAddr
impl FromStr for SocketAddr
type Err = AddrParseError
type Err = AddrParseError
sourcefn from_str(s: &str) -> Result<SocketAddr, AddrParseError>
fn from_str(s: &str) -> Result<SocketAddr, AddrParseError>
s
to return a value of this type. Read moresourceimpl Hash for SocketAddr
impl Hash for SocketAddr
sourceimpl Ord for SocketAddr
impl Ord for SocketAddr
sourcefn cmp(&self, other: &SocketAddr) -> Ordering
fn cmp(&self, other: &SocketAddr) -> Ordering
1.21.0 · sourcefn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
1.21.0 · sourcefn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
1.50.0 · sourcefn clamp(self, min: Self, max: Self) -> Selfwhere
Self: Sized + PartialOrd<Self>,
fn clamp(self, min: Self, max: Self) -> Selfwhere
Self: Sized + PartialOrd<Self>,
sourceimpl PartialEq<SocketAddr> for SocketAddr
impl PartialEq<SocketAddr> for SocketAddr
sourcefn eq(&self, other: &SocketAddr) -> bool
fn eq(&self, other: &SocketAddr) -> bool
sourceimpl PartialOrd<SocketAddr> for SocketAddr
impl PartialOrd<SocketAddr> for SocketAddr
sourceimpl ToSocketAddrs for SocketAddr
impl ToSocketAddrs for SocketAddr
type Iter = IntoIter<SocketAddr>
type Iter = IntoIter<SocketAddr>
sourcefn 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
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
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
sourceimpl<T> ToSocketAddrs for Twhere
T: ToSocketAddrs,
impl<T> ToSocketAddrs for Twhere
T: ToSocketAddrs,
type Iter = <T as ToSocketAddrs>::Iter
type Iter = <T as ToSocketAddrs>::Iter
SocketAddr
values.type Future = Ready<Result<<T as ToSocketAddrs>::Iter, Error>>
type Future = Ready<Result<<T as ToSocketAddrs>::Iter, Error>>
Self::to_socket_addrs
.sourcefn to_socket_addrs(&self) -> <T as ToSocketAddrs>::Future
fn to_socket_addrs(&self) -> <T as ToSocketAddrs>::Future
SocketAddr
values. Read more