SocketAddr

Enum SocketAddr 

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.

§Examples

use no_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§

Source§

impl SocketAddr

Source

pub fn new(ip: IpAddr, port: u16) -> SocketAddr

Creates a new socket address from an IP address and a port number.

§Examples
use no_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);
Source

pub fn ip(&self) -> IpAddr

Returns the IP address associated with this socket address.

§Examples
use no_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)));
Source

pub fn set_ip(&mut self, new_ip: IpAddr)

Changes the IP address associated with this socket address.

§Examples
use no_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)));
Source

pub fn port(&self) -> u16

Returns the port number associated with this socket address.

§Examples
use no_std_net::{IpAddr, Ipv4Addr, SocketAddr};

let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
assert_eq!(socket.port(), 8080);
Source

pub fn set_port(&mut self, new_port: u16)

Changes the port number associated with this socket address.

§Examples
use no_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);
Source

pub fn is_ipv4(&self) -> bool

Returns true if the IP address in this SocketAddr is an IPv4 address, and false otherwise.

§Examples
use no_std_net::{IpAddr, Ipv4Addr, SocketAddr};

fn main() {
    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);
}
Source

pub fn is_ipv6(&self) -> bool

Returns true if the IP address in this SocketAddr is an IPv6 address, and false otherwise.

§Examples
use no_std_net::{IpAddr, Ipv6Addr, SocketAddr};

fn main() {
    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§

Source§

impl Clone for SocketAddr

Source§

fn clone(&self) -> SocketAddr

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SocketAddr

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Display for SocketAddr

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl<I> From<(I, u16)> for SocketAddr
where I: Into<IpAddr>,

Source§

fn from(pieces: (I, u16)) -> SocketAddr

Converts to this type from the input type.
Source§

impl From<SocketAddrV4> for SocketAddr

Source§

fn from(sock4: SocketAddrV4) -> SocketAddr

Converts to this type from the input type.
Source§

impl From<SocketAddrV6> for SocketAddr

Source§

fn from(sock6: SocketAddrV6) -> SocketAddr

Converts to this type from the input type.
Source§

impl FromStr for SocketAddr

Source§

type Err = AddrParseError

The associated error which can be returned from parsing.
Source§

fn from_str(s: &str) -> Result<SocketAddr, AddrParseError>

Parses a string s to return a value of this type. Read more
Source§

impl Hash for SocketAddr

Source§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for SocketAddr

Source§

fn eq(&self, other: &SocketAddr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl ToSocketAddrs for SocketAddr

Source§

type Iter = IntoIter<SocketAddr>

Returned iterator over socket addresses which this type may correspond to.
Source§

fn to_socket_addrs(&self) -> Result<IntoIter<SocketAddr>, ToSocketAddrError>

Converts this object to an iterator of resolved SocketAddrs. Read more
Source§

impl Copy for SocketAddr

Source§

impl Eq for SocketAddr

Source§

impl StructuralPartialEq for SocketAddr

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.