pub struct SocketAddr { /* private fields */ }Available on Unix only.
Expand description
An address associated with a Unix socket.
§Examples
use std::os::unix::net::UnixListener;
let socket = match UnixListener::bind("/tmp/sock") {
Ok(sock) => sock,
Err(e) => {
println!("Couldn't bind: {e:?}");
return
}
};
let addr = socket.local_addr().expect("Couldn't get local address");Implementations§
source§impl SocketAddr
impl SocketAddr
1.61.0 · sourcepub fn from_pathname<P>(path: P) -> Result<SocketAddr, Error>
pub fn from_pathname<P>(path: P) -> Result<SocketAddr, Error>
Constructs a SockAddr with the family AF_UNIX and the provided path.
§Errors
Returns an error if the path is longer than SUN_LEN or if it contains
NULL bytes.
§Examples
use std::os::unix::net::SocketAddr;
use std::path::Path;
let address = SocketAddr::from_pathname("/path/to/socket")?;
assert_eq!(address.as_pathname(), Some(Path::new("/path/to/socket")));Creating a SocketAddr with a NULL byte results in an error.
use std::os::unix::net::SocketAddr;
assert!(SocketAddr::from_pathname("/path/with/\0/bytes").is_err());1.10.0 · sourcepub fn is_unnamed(&self) -> bool
pub fn is_unnamed(&self) -> bool
Returns true if the address is unnamed.
§Examples
A named address:
use std::os::unix::net::UnixListener;
fn main() -> std::io::Result<()> {
let socket = UnixListener::bind("/tmp/sock")?;
let addr = socket.local_addr().expect("Couldn't get local address");
assert_eq!(addr.is_unnamed(), false);
Ok(())
}An unnamed address:
use std::os::unix::net::UnixDatagram;
fn main() -> std::io::Result<()> {
let socket = UnixDatagram::unbound()?;
let addr = socket.local_addr().expect("Couldn't get local address");
assert_eq!(addr.is_unnamed(), true);
Ok(())
}1.10.0 · sourcepub fn as_pathname(&self) -> Option<&Path>
pub fn as_pathname(&self) -> Option<&Path>
Returns the contents of this address if it is a pathname address.
§Examples
With a pathname:
use std::os::unix::net::UnixListener;
use std::path::Path;
fn main() -> std::io::Result<()> {
let socket = UnixListener::bind("/tmp/sock")?;
let addr = socket.local_addr().expect("Couldn't get local address");
assert_eq!(addr.as_pathname(), Some(Path::new("/tmp/sock")));
Ok(())
}Without a pathname:
use std::os::unix::net::UnixDatagram;
fn main() -> std::io::Result<()> {
let socket = UnixDatagram::unbound()?;
let addr = socket.local_addr().expect("Couldn't get local address");
assert_eq!(addr.as_pathname(), None);
Ok(())
}Trait Implementations§
1.10.0 · source§impl Clone for SocketAddr
impl Clone for SocketAddr
source§fn clone(&self) -> SocketAddr
fn clone(&self) -> SocketAddr
Returns a copy of the value. Read more
1.6.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read more1.10.0 · source§impl Debug for SocketAddr
impl Debug for SocketAddr
source§impl From<SocketAddr> for SocketAddr
impl From<SocketAddr> for SocketAddr
source§fn from(value: SocketAddr) -> Self
fn from(value: SocketAddr) -> Self
Converts to this type from the input type.
source§impl NetStreamListener<SocketAddr> for UnixListener
Available on (crate features native-tls or rustls) and (crate features async-std or tokio) and crate feature async-std only.
impl NetStreamListener<SocketAddr> for UnixListener
Available on (crate features
native-tls or rustls) and (crate features async-std or tokio) and crate feature async-std only.source§type Stream = UnixStream
type Stream = UnixStream
The type of connections returned by
Self::incoming().source§type Incoming = IncomingUnixStreams
type Incoming = IncomingUnixStreams
The type of
stream::Stream returned by Self::incoming().source§fn incoming(self) -> IncomingUnixStreams
fn incoming(self) -> IncomingUnixStreams
Wrap this listener into a new
stream::Stream that yields
streams and addresses.source§fn local_addr(&self) -> IoResult<SocketAddr>
fn local_addr(&self) -> IoResult<SocketAddr>
Return the local address that this listener is bound to.
source§impl NetStreamProvider<SocketAddr> for AsyncStd
Available on (crate features native-tls or rustls) and (crate features async-std or tokio) and crate feature async-std only.
impl NetStreamProvider<SocketAddr> for AsyncStd
Available on (crate features
native-tls or rustls) and (crate features async-std or tokio) and crate feature async-std only.source§type Stream = UnixStream
type Stream = UnixStream
The type for the connections returned by
Self::connect().source§type Listener = UnixListener
type Listener = UnixListener
The type for the listeners returned by
Self::listen().source§fn connect<'life0, 'life1, 'async_trait>(
&'life0 self,
addr: &'life1 SocketAddr,
) -> Pin<Box<dyn Future<Output = IoResult<Self::Stream>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn connect<'life0, 'life1, 'async_trait>(
&'life0 self,
addr: &'life1 SocketAddr,
) -> Pin<Box<dyn Future<Output = IoResult<Self::Stream>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Launch a connection connection to a given socket address. Read more
source§impl NetStreamProvider<SocketAddr> for AsyncStdNativeTlsRuntime
Available on (crate features native-tls or rustls) and crate feature async-std only.
impl NetStreamProvider<SocketAddr> for AsyncStdNativeTlsRuntime
Available on (crate features
native-tls or rustls) and crate feature async-std only.source§type Stream = <CompoundRuntime<AsyncStd, AsyncStd, RealCoarseTimeProvider, AsyncStd, AsyncStd, NativeTlsProvider, AsyncStd> as NetStreamProvider<SocketAddr>>::Stream
type Stream = <CompoundRuntime<AsyncStd, AsyncStd, RealCoarseTimeProvider, AsyncStd, AsyncStd, NativeTlsProvider, AsyncStd> as NetStreamProvider<SocketAddr>>::Stream
The type for the connections returned by
Self::connect().source§type Listener = <CompoundRuntime<AsyncStd, AsyncStd, RealCoarseTimeProvider, AsyncStd, AsyncStd, NativeTlsProvider, AsyncStd> as NetStreamProvider<SocketAddr>>::Listener
type Listener = <CompoundRuntime<AsyncStd, AsyncStd, RealCoarseTimeProvider, AsyncStd, AsyncStd, NativeTlsProvider, AsyncStd> as NetStreamProvider<SocketAddr>>::Listener
The type for the listeners returned by
Self::listen().source§fn connect<'life0, 'life1, 'async_trait>(
&'life0 self,
addr: &'life1 SocketAddr,
) -> Pin<Box<dyn Future<Output = Result<Self::Stream>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn connect<'life0, 'life1, 'async_trait>(
&'life0 self,
addr: &'life1 SocketAddr,
) -> Pin<Box<dyn Future<Output = Result<Self::Stream>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Launch a connection connection to a given socket address. Read more
source§impl NetStreamProvider<SocketAddr> for AsyncStdRustlsRuntime
Available on (crate features native-tls or rustls) and crate feature async-std only.
impl NetStreamProvider<SocketAddr> for AsyncStdRustlsRuntime
Available on (crate features
native-tls or rustls) and crate feature async-std only.source§type Stream = <CompoundRuntime<AsyncStd, AsyncStd, RealCoarseTimeProvider, AsyncStd, AsyncStd, RustlsProvider, AsyncStd> as NetStreamProvider<SocketAddr>>::Stream
type Stream = <CompoundRuntime<AsyncStd, AsyncStd, RealCoarseTimeProvider, AsyncStd, AsyncStd, RustlsProvider, AsyncStd> as NetStreamProvider<SocketAddr>>::Stream
The type for the connections returned by
Self::connect().source§type Listener = <CompoundRuntime<AsyncStd, AsyncStd, RealCoarseTimeProvider, AsyncStd, AsyncStd, RustlsProvider, AsyncStd> as NetStreamProvider<SocketAddr>>::Listener
type Listener = <CompoundRuntime<AsyncStd, AsyncStd, RealCoarseTimeProvider, AsyncStd, AsyncStd, RustlsProvider, AsyncStd> as NetStreamProvider<SocketAddr>>::Listener
The type for the listeners returned by
Self::listen().source§fn connect<'life0, 'life1, 'async_trait>(
&'life0 self,
addr: &'life1 SocketAddr,
) -> Pin<Box<dyn Future<Output = Result<Self::Stream>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn connect<'life0, 'life1, 'async_trait>(
&'life0 self,
addr: &'life1 SocketAddr,
) -> Pin<Box<dyn Future<Output = Result<Self::Stream>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Launch a connection connection to a given socket address. Read more
source§impl<SpawnR, SleepR, CoarseTimeR, TcpR, UnixR, TlsR, UdpR> NetStreamProvider<SocketAddr> for CompoundRuntime<SpawnR, SleepR, CoarseTimeR, TcpR, UnixR, TlsR, UdpR>
impl<SpawnR, SleepR, CoarseTimeR, TcpR, UnixR, TlsR, UdpR> NetStreamProvider<SocketAddr> for CompoundRuntime<SpawnR, SleepR, CoarseTimeR, TcpR, UnixR, TlsR, UdpR>
source§type Stream = <UnixR as NetStreamProvider<SocketAddr>>::Stream
type Stream = <UnixR as NetStreamProvider<SocketAddr>>::Stream
The type for the connections returned by
Self::connect().source§type Listener = <UnixR as NetStreamProvider<SocketAddr>>::Listener
type Listener = <UnixR as NetStreamProvider<SocketAddr>>::Listener
The type for the listeners returned by
Self::listen().source§fn connect<'life0, 'life1, 'async_trait>(
&'life0 self,
addr: &'life1 SocketAddr,
) -> Pin<Box<dyn Future<Output = IoResult<Self::Stream>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn connect<'life0, 'life1, 'async_trait>(
&'life0 self,
addr: &'life1 SocketAddr,
) -> Pin<Box<dyn Future<Output = IoResult<Self::Stream>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Launch a connection connection to a given socket address. Read more
source§impl NetStreamProvider<SocketAddr> for PreferredRuntime
impl NetStreamProvider<SocketAddr> for PreferredRuntime
source§type Stream = <TokioNativeTlsRuntime as NetStreamProvider<SocketAddr>>::Stream
type Stream = <TokioNativeTlsRuntime as NetStreamProvider<SocketAddr>>::Stream
The type for the connections returned by
Self::connect().source§type Listener = <TokioNativeTlsRuntime as NetStreamProvider<SocketAddr>>::Listener
type Listener = <TokioNativeTlsRuntime as NetStreamProvider<SocketAddr>>::Listener
The type for the listeners returned by
Self::listen().source§fn connect<'life0, 'life1, 'async_trait>(
&'life0 self,
addr: &'life1 SocketAddr,
) -> Pin<Box<dyn Future<Output = Result<Self::Stream>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn connect<'life0, 'life1, 'async_trait>(
&'life0 self,
addr: &'life1 SocketAddr,
) -> Pin<Box<dyn Future<Output = Result<Self::Stream>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Launch a connection connection to a given socket address. Read more
source§impl NetStreamProvider<SocketAddr> for TokioNativeTlsRuntime
Available on (crate features native-tls or rustls) and crate feature tokio only.
impl NetStreamProvider<SocketAddr> for TokioNativeTlsRuntime
Available on (crate features
native-tls or rustls) and crate feature tokio only.source§type Stream = <CompoundRuntime<TokioRuntimeHandle, TokioRuntimeHandle, RealCoarseTimeProvider, TokioRuntimeHandle, TokioRuntimeHandle, NativeTlsProvider, TokioRuntimeHandle> as NetStreamProvider<SocketAddr>>::Stream
type Stream = <CompoundRuntime<TokioRuntimeHandle, TokioRuntimeHandle, RealCoarseTimeProvider, TokioRuntimeHandle, TokioRuntimeHandle, NativeTlsProvider, TokioRuntimeHandle> as NetStreamProvider<SocketAddr>>::Stream
The type for the connections returned by
Self::connect().source§type Listener = <CompoundRuntime<TokioRuntimeHandle, TokioRuntimeHandle, RealCoarseTimeProvider, TokioRuntimeHandle, TokioRuntimeHandle, NativeTlsProvider, TokioRuntimeHandle> as NetStreamProvider<SocketAddr>>::Listener
type Listener = <CompoundRuntime<TokioRuntimeHandle, TokioRuntimeHandle, RealCoarseTimeProvider, TokioRuntimeHandle, TokioRuntimeHandle, NativeTlsProvider, TokioRuntimeHandle> as NetStreamProvider<SocketAddr>>::Listener
The type for the listeners returned by
Self::listen().source§fn connect<'life0, 'life1, 'async_trait>(
&'life0 self,
addr: &'life1 SocketAddr,
) -> Pin<Box<dyn Future<Output = Result<Self::Stream>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn connect<'life0, 'life1, 'async_trait>(
&'life0 self,
addr: &'life1 SocketAddr,
) -> Pin<Box<dyn Future<Output = Result<Self::Stream>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Launch a connection connection to a given socket address. Read more
source§impl NetStreamProvider<SocketAddr> for TokioRustlsRuntime
Available on (crate features native-tls or rustls) and crate feature tokio only.
impl NetStreamProvider<SocketAddr> for TokioRustlsRuntime
Available on (crate features
native-tls or rustls) and crate feature tokio only.source§type Stream = <CompoundRuntime<TokioRuntimeHandle, TokioRuntimeHandle, RealCoarseTimeProvider, TokioRuntimeHandle, TokioRuntimeHandle, RustlsProvider, TokioRuntimeHandle> as NetStreamProvider<SocketAddr>>::Stream
type Stream = <CompoundRuntime<TokioRuntimeHandle, TokioRuntimeHandle, RealCoarseTimeProvider, TokioRuntimeHandle, TokioRuntimeHandle, RustlsProvider, TokioRuntimeHandle> as NetStreamProvider<SocketAddr>>::Stream
The type for the connections returned by
Self::connect().source§type Listener = <CompoundRuntime<TokioRuntimeHandle, TokioRuntimeHandle, RealCoarseTimeProvider, TokioRuntimeHandle, TokioRuntimeHandle, RustlsProvider, TokioRuntimeHandle> as NetStreamProvider<SocketAddr>>::Listener
type Listener = <CompoundRuntime<TokioRuntimeHandle, TokioRuntimeHandle, RealCoarseTimeProvider, TokioRuntimeHandle, TokioRuntimeHandle, RustlsProvider, TokioRuntimeHandle> as NetStreamProvider<SocketAddr>>::Listener
The type for the listeners returned by
Self::listen().source§fn connect<'life0, 'life1, 'async_trait>(
&'life0 self,
addr: &'life1 SocketAddr,
) -> Pin<Box<dyn Future<Output = Result<Self::Stream>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn connect<'life0, 'life1, 'async_trait>(
&'life0 self,
addr: &'life1 SocketAddr,
) -> Pin<Box<dyn Future<Output = Result<Self::Stream>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Launch a connection connection to a given socket address. Read more
1.70.0 · source§impl SocketAddrExt for SocketAddr
Available on Android or Linux only.
impl SocketAddrExt for SocketAddr
Available on Android or Linux only.
source§fn as_abstract_name(&self) -> Option<&[u8]>
fn as_abstract_name(&self) -> Option<&[u8]>
Returns the contents of this address if it is in the abstract namespace. Read more
source§fn from_abstract_name<N>(name: N) -> Result<SocketAddr, Error>
fn from_abstract_name<N>(name: N) -> Result<SocketAddr, Error>
Creates a Unix socket address in the abstract namespace. Read more
source§impl TryFrom<SocketAddr> for SocketAddr
impl TryFrom<SocketAddr> for SocketAddr
source§type Error = TryIntoError<SocketAddr>
type Error = TryIntoError<SocketAddr>
The type returned in the event of a conversion error.
Auto Trait Implementations§
impl Freeze for SocketAddr
impl RefUnwindSafe for SocketAddr
impl Send for SocketAddr
impl Sync for SocketAddr
impl Unpin for SocketAddr
impl UnwindSafe for SocketAddr
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit)