Enum std::net::SocketAddr 1.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);Run
Variants
V4(SocketAddrV4)An IPv4 socket address.
V6(SocketAddrV6)An IPv6 socket address.
Implementations
impl SocketAddr[src]
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}; 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}; 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 Clone for SocketAddr[src]
impl Clone for SocketAddr[src]fn clone(&self) -> SocketAddr[src]
pub fn clone_from(&mut self, source: &Self)[src]
impl Copy for SocketAddr[src]
impl Copy for SocketAddr[src]impl Eq for SocketAddr[src]
impl Eq for SocketAddr[src]impl<I: Into<IpAddr>> From<(I, u16)> for SocketAddr1.17.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 From<SocketAddrV4> for SocketAddr1.16.0[src]
impl From<SocketAddrV4> for SocketAddr1.16.0[src]fn from(sock4: SocketAddrV4) -> SocketAddr[src]
Converts a SocketAddrV4 into a SocketAddr::V4.
impl From<SocketAddrV6> for SocketAddr1.16.0[src]
impl From<SocketAddrV6> for SocketAddr1.16.0[src]fn from(sock6: SocketAddrV6) -> SocketAddr[src]
Converts a SocketAddrV6 into a SocketAddr::V6.
impl FromStr for SocketAddr[src]
impl FromStr for SocketAddr[src]type Err = AddrParseError
The associated error which can be returned from parsing.
fn from_str(s: &str) -> Result<SocketAddr, AddrParseError>[src]
impl Hash for SocketAddr[src]
impl Hash for SocketAddr[src]impl Ord for SocketAddr[src]
impl Ord for SocketAddr[src]impl PartialEq<SocketAddr> for SocketAddr[src]
impl PartialEq<SocketAddr> for SocketAddr[src]fn eq(&self, other: &SocketAddr) -> bool[src]
fn ne(&self, other: &SocketAddr) -> bool[src]
impl PartialOrd<SocketAddr> for SocketAddr[src]
impl PartialOrd<SocketAddr> for SocketAddr[src]impl StructuralEq for SocketAddr[src]
impl StructuralEq for SocketAddr[src]impl StructuralPartialEq for SocketAddr[src]
impl StructuralPartialEq for SocketAddr[src]impl ToSocketAddrs 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
fn to_socket_addrs(&self) -> Result<IntoIter<SocketAddr>>[src]
Auto Trait Implementations
impl RefUnwindSafe for SocketAddr
impl RefUnwindSafe for SocketAddrimpl Send for SocketAddr
impl Send for SocketAddrimpl Sync for SocketAddr
impl Sync for SocketAddrimpl Unpin for SocketAddr
impl Unpin for SocketAddrimpl UnwindSafe for SocketAddr
impl UnwindSafe for SocketAddrBlanket Implementations
impl<T> Borrow<T> for T where
T: ?Sized, [src]
impl<T> Borrow<T> for T where
T: ?Sized, [src]pub fn borrow(&self) -> &TⓘNotable traits for &'_ mut I
impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized, type Item = <I as Iterator>::Item;impl<'_, F> Future for &'_ mut F where
F: Future + Unpin + ?Sized, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for &mut Rimpl<W: Write + ?Sized> Write for &mut W[src]
Notable traits for &'_ mut I
impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized, type Item = <I as Iterator>::Item;impl<'_, F> Future for &'_ mut F where
F: Future + Unpin + ?Sized, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for &mut Rimpl<W: Write + ?Sized> Write for &mut Wimpl<T> BorrowMut<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]pub fn borrow_mut(&mut self) -> &mut TⓘNotable traits for &'_ mut I
impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized, type Item = <I as Iterator>::Item;impl<'_, F> Future for &'_ mut F where
F: Future + Unpin + ?Sized, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for &mut Rimpl<W: Write + ?Sized> Write for &mut W[src]
Notable traits for &'_ mut I
impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized, type Item = <I as Iterator>::Item;impl<'_, F> Future for &'_ mut F where
F: Future + Unpin + ?Sized, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for &mut Rimpl<W: Write + ?Sized> Write for &mut W