Enum async_std::net::SocketAddr1.0.0[][src]

pub enum SocketAddr {
    V4(SocketAddrV4),
    V6(SocketAddrV6),
}

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

impl SocketAddr[src]

pub fn new(ip: IpAddr, port: u16) -> SocketAddr1.7.0[src]

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);

pub fn ip(&self) -> IpAddr1.7.0[src]

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)));

pub fn set_ip(&mut self, new_ip: IpAddr)1.9.0[src]

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)));

pub fn port(&self) -> u16[src]

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);

pub fn set_port(&mut self, new_port: u16)1.9.0[src]

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);

pub fn is_ipv4(&self) -> bool1.16.0[src]

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);

pub fn is_ipv6(&self) -> bool1.16.0[src]

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

impl Clone for SocketAddr[src]

impl Copy for SocketAddr[src]

impl Debug for SocketAddr[src]

impl Display for SocketAddr[src]

impl Eq for SocketAddr[src]

impl<I> From<(I, u16)> for SocketAddr where
    I: Into<IpAddr>, 
1.17.0[src]

pub fn from(pieces: (I, u16)) -> SocketAddr[src]

Converts a tuple struct (Into<IpAddr>, u16) into a SocketAddr.

This conversion creates a SocketAddr::V4 for a IpAddr::V4 and creates a SocketAddr::V6 for a IpAddr::V6.

u16 is treated as port of the newly created SocketAddr.

impl From<SocketAddrV4> for SocketAddr1.16.0[src]

pub fn from(sock4: SocketAddrV4) -> SocketAddr[src]

Converts a SocketAddrV4 into a SocketAddr::V4.

impl From<SocketAddrV6> for SocketAddr1.16.0[src]

pub fn from(sock6: SocketAddrV6) -> SocketAddr[src]

Converts a SocketAddrV6 into a SocketAddr::V6.

impl FromStr for SocketAddr[src]

type Err = AddrParseError

The associated error which can be returned from parsing.

impl Hash for SocketAddr[src]

impl Ord for SocketAddr[src]

impl PartialEq<SocketAddr> for SocketAddr[src]

impl PartialOrd<SocketAddr> for SocketAddr[src]

impl StructuralEq for SocketAddr[src]

impl StructuralPartialEq for SocketAddr[src]

impl ToSocketAddrs for SocketAddr[src]

type Iter = IntoIter<SocketAddr>

Returned iterator over socket addresses which this type may correspond to. Read more

impl ToSocketAddrs for SocketAddr[src]

type Iter = IntoIter<SocketAddr>

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

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

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.