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.
§Textual representation
SocketAddrV4
provides a FromStr
implementation.
It accepts an IPv4 address in its textual representation, followed by a
single :
, followed by the port encoded as a decimal integer. Other
formats are not accepted.
§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 (const: unstable) · 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));
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
use std::net::{SocketAddrV4, Ipv4Addr};
let socket = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 8080);
assert_eq!(socket.port(), 8080);
1.9.0 (const: unstable) · 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::{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§
1.0.0 · Source§impl Clone for SocketAddrV4
impl Clone for SocketAddrV4
Source§fn clone(&self) -> SocketAddrV4
fn clone(&self) -> SocketAddrV4
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 SocketAddrV4
impl Debug for SocketAddrV4
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
.
1.5.0 · Source§impl FromStr for SocketAddrV4
impl FromStr for SocketAddrV4
Source§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 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,
1.0.0 · Source§impl PartialEq for SocketAddrV4
impl PartialEq for SocketAddrV4
1.0.0 · Source§impl PartialOrd for SocketAddrV4
impl PartialOrd for SocketAddrV4
1.0.0 · Source§impl ToSocketAddrs for SocketAddrV4
impl ToSocketAddrs for SocketAddrV4
Source§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 moreSource§impl ToSocketAddrs for SocketAddrV4
impl ToSocketAddrs for SocketAddrV4
Source§type Iter = IntoIter<SocketAddr>
type Iter = IntoIter<SocketAddr>
Source§fn to_socket_addrs(
&self,
) -> ToSocketAddrsFuture<<SocketAddrV4 as ToSocketAddrs>::Iter>
fn to_socket_addrs( &self, ) -> ToSocketAddrsFuture<<SocketAddrV4 as ToSocketAddrs>::Iter>
SocketAddr
s. Read more