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
)
pub fn parse_ascii(b: &[u8]) -> Result<SocketAddrV4, AddrParseError>
addr_parse_ascii
)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
1.0.0 (const: 1.69.0) · sourcepub const fn new(ip: Ipv4Addr, port: u16) -> SocketAddrV4
pub const fn new(ip: Ipv4Addr, port: u16) -> SocketAddrV4
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);
1.0.0 (const: 1.69.0) · sourcepub const fn ip(&self) -> &Ipv4Addr
pub const fn ip(&self) -> &Ipv4Addr
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)
pub fn set_ip(&mut self, new_ip: Ipv4Addr)
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));
Trait Implementations§
1.0.0 · source§impl Clone for SocketAddrV4
impl Clone for SocketAddrV4
source§fn clone(&self) -> SocketAddrV4
fn clone(&self) -> SocketAddrV4
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read more1.0.0 · source§impl Debug for SocketAddrV4
impl Debug for SocketAddrV4
source§impl<'de> Deserialize<'de> for SocketAddrV4
impl<'de> Deserialize<'de> for SocketAddrV4
source§fn deserialize<D>(
deserializer: D,
) -> Result<SocketAddrV4, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<SocketAddrV4, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
1.0.0 · source§impl Display for SocketAddrV4
impl Display for SocketAddrV4
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
.
source§impl From<SocketAddrV4> for SocketAddrAny
impl From<SocketAddrV4> for SocketAddrAny
source§fn from(from: SocketAddrV4) -> Self
fn from(from: SocketAddrV4) -> Self
Converts to this type from the input type.
1.5.0 · source§impl FromStr for SocketAddrV4
impl FromStr for SocketAddrV4
source§type Err = AddrParseError
type Err = AddrParseError
The associated error which can be returned from parsing.
source§fn from_str(s: &str) -> Result<SocketAddrV4, AddrParseError>
fn from_str(s: &str) -> Result<SocketAddrV4, AddrParseError>
Parses a string
s
to return a value of this type. Read more1.0.0 · source§impl Hash for SocketAddrV4
impl Hash for SocketAddrV4
1.0.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,
Compares and returns the maximum of two values. Read more
1.0.0 · source§impl PartialEq for SocketAddrV4
impl PartialEq for SocketAddrV4
1.0.0 · source§impl PartialOrd for SocketAddrV4
impl PartialOrd for SocketAddrV4
source§impl Serialize for SocketAddrV4
impl Serialize for SocketAddrV4
source§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
Serialize this value into the given Serde serializer. Read more
1.0.0 · source§impl ToSocketAddrs for SocketAddrV4
impl ToSocketAddrs for SocketAddrV4
source§type Iter = IntoIter<SocketAddr>
type Iter = IntoIter<SocketAddr>
Returned iterator over socket addresses which this type may correspond
to.
source§fn to_socket_addrs(&self) -> Result<IntoIter<SocketAddr>, Error>
fn to_socket_addrs(&self) -> Result<IntoIter<SocketAddr>, Error>
Converts this object to an iterator of resolved
SocketAddr
s. Read moreimpl Copy for SocketAddrV4
impl Eq for SocketAddrV4
impl StructuralPartialEq for SocketAddrV4
Auto Trait Implementations§
impl Freeze for SocketAddrV4
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)