pub struct SocketAddrV4 { /* private fields */ }
Expand description
An IPv4 socket address.
IPv4 socket addresses consist of an IPv4
address and a 16-bit port number, as
stated in IETF RFC 793.
See SocketAddr
for a type encompassing both IPv4 and IPv6 socket addresses.
The size of a SocketAddrV4
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::{Ipv4Addr, SocketAddrV4};
let socket = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 8080);
assert_eq!("127.0.0.1:8080".parse(), Ok(socket));
assert_eq!(socket.ip(), &Ipv4Addr::new(127, 0, 0, 1));
assert_eq!(socket.port(), 8080);
Implementations§
source§impl SocketAddrV4
impl SocketAddrV4
sourcepub fn parse_ascii(b: &[u8]) -> Result<SocketAddrV4, 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<SocketAddrV4, AddrParseError>
addr_parse_ascii
)miri-test-libstd
only.Parse an IPv4 socket address from a slice of bytes.
#![feature(addr_parse_ascii)]
use std::net::{Ipv4Addr, SocketAddrV4};
let socket = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 8080);
assert_eq!(SocketAddrV4::parse_ascii(b"127.0.0.1:8080"), Ok(socket));
source§impl SocketAddrV4
impl SocketAddrV4
const: 1.69.0 · sourcepub const fn new(ip: Ipv4Addr, port: u16) -> SocketAddrV4
Available on non-crate feature miri-test-libstd
only.
pub const fn new(ip: Ipv4Addr, port: u16) -> SocketAddrV4
miri-test-libstd
only.Creates a new socket address from an IPv4
address and a port number.
Examples
use std::net::{SocketAddrV4, Ipv4Addr};
let socket = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 8080);
const: 1.69.0 · sourcepub const fn ip(&self) -> &Ipv4Addr
Available on non-crate feature miri-test-libstd
only.
pub const fn ip(&self) -> &Ipv4Addr
miri-test-libstd
only.Returns the IP address associated with this socket address.
Examples
use std::net::{SocketAddrV4, Ipv4Addr};
let socket = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 8080);
assert_eq!(socket.ip(), &Ipv4Addr::new(127, 0, 0, 1));
1.9.0 · sourcepub fn set_ip(&mut self, new_ip: Ipv4Addr)
Available on non-crate feature miri-test-libstd
only.
pub fn set_ip(&mut self, new_ip: Ipv4Addr)
miri-test-libstd
only.Changes the IP address associated with this socket address.
Examples
use std::net::{SocketAddrV4, Ipv4Addr};
let mut socket = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 8080);
socket.set_ip(Ipv4Addr::new(192, 168, 0, 1));
assert_eq!(socket.ip(), &Ipv4Addr::new(192, 168, 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::{SocketAddrV4, Ipv4Addr};
let socket = SocketAddrV4::new(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::{SocketAddrV4, Ipv4Addr};
let mut socket = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 8080);
socket.set_port(4242);
assert_eq!(socket.port(), 4242);
Trait Implementations§
source§impl Clone for SocketAddrV4
impl Clone for SocketAddrV4
source§fn clone(&self) -> SocketAddrV4
fn clone(&self) -> SocketAddrV4
source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for SocketAddrV4
impl Debug for SocketAddrV4
source§impl Display for SocketAddrV4
impl Display for SocketAddrV4
source§impl From<SocketAddrV4> for SockAddr
impl From<SocketAddrV4> for SockAddr
source§fn from(addr: SocketAddrV4) -> SockAddr
fn from(addr: SocketAddrV4) -> SockAddr
§impl From<SocketAddrV4> for SockAddr
impl From<SocketAddrV4> for SockAddr
§fn from(addr: SocketAddrV4) -> SockAddr
fn from(addr: SocketAddrV4) -> 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.5.0 · source§impl FromStr for SocketAddrV4
impl FromStr for SocketAddrV4
§type Err = AddrParseError
type Err = AddrParseError
source§fn from_str(s: &str) -> Result<SocketAddrV4, AddrParseError>
fn from_str(s: &str) -> Result<SocketAddrV4, AddrParseError>
s
to return a value of this type. Read moresource§impl Hash for SocketAddrV4
impl Hash for SocketAddrV4
1.45.0 · source§impl Ord for SocketAddrV4
impl Ord for SocketAddrV4
source§fn cmp(&self, other: &SocketAddrV4) -> Ordering
fn cmp(&self, other: &SocketAddrV4) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere Self: Sized,
source§impl PartialEq<SocketAddrV4> for SocketAddrV4
impl PartialEq<SocketAddrV4> for SocketAddrV4
source§fn eq(&self, other: &SocketAddrV4) -> bool
fn eq(&self, other: &SocketAddrV4) -> bool
self
and other
values to be equal, and is used
by ==
.1.45.0 · source§impl PartialOrd<SocketAddrV4> for SocketAddrV4
impl PartialOrd<SocketAddrV4> for SocketAddrV4
source§impl ToSocketAddrs for SocketAddrV4
impl ToSocketAddrs for SocketAddrV4
§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 SocketAddrV4
impl Eq for SocketAddrV4
impl StructuralEq for SocketAddrV4
impl StructuralPartialEq for SocketAddrV4
impl ToSocketAddrs for SocketAddrV4
Auto Trait Implementations§
impl RefUnwindSafe for SocketAddrV4
impl Send for SocketAddrV4
impl Sync for SocketAddrV4
impl Unpin for SocketAddrV4
impl UnwindSafe for SocketAddrV4
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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