pub struct SocketAddr { /* private fields */ }
Available on Unix only.
Expand description
Implementations§
source§impl SocketAddr
impl SocketAddr
1.61.0 · sourcepub fn from_pathname<P>(path: P) -> Result<SocketAddr>where
P: AsRef<Path>,
pub fn from_pathname<P>(path: P) -> Result<SocketAddr>where P: AsRef<Path>,
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")));
RunCreating 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());
Runsourcepub 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(())
}
RunAn 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(())
}
Runsourcepub 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(())
}
RunWithout 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(())
}
RunTrait Implementations§
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.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for SocketAddr
impl Debug for SocketAddr
source§impl SocketAddrExt for SocketAddr
Available on Android or Linux only.
impl SocketAddrExt for SocketAddr
Available on Android or Linux only.