1.0.0[][src]Enum std::net::SocketAddr

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

Variants

V4(SocketAddrV4)

An IPv4 socket address.

V6(SocketAddrV6)

An IPv6 socket address.

Methods

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

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

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

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

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

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

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

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

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

Trait Implementations

impl ToSocketAddrs for SocketAddr[src]

type Iter = IntoIter<SocketAddr>

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

impl Display for SocketAddr[src]

impl Debug for SocketAddr[src]

impl PartialEq<SocketAddr> for SocketAddr[src]

impl Eq for SocketAddr[src]

impl Hash for SocketAddr[src]

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

Feeds a slice of this type into the given [Hasher]. Read more

impl Copy for SocketAddr[src]

impl FromStr for SocketAddr[src]

type Err = AddrParseError

The associated error which can be returned from parsing.

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

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

impl<I: Into<IpAddr>> From<(I, u16)> for SocketAddr1.17.0[src]

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 Clone for SocketAddr[src]

fn clone_from(&mut self, source: &Self)[src]

Performs copy-assignment from source. Read more

Auto Trait Implementations

impl UnwindSafe for SocketAddr

impl RefUnwindSafe for SocketAddr

impl Unpin for SocketAddr

impl Sync for SocketAddr

impl Send for SocketAddr

Blanket Implementations

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> Into<U> for T where
    U: From<T>, 
[src]

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

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.

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

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

impl<T> Any for T where
    T: 'static + ?Sized
[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]