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>,
使用 AF_UNIX
系列和提供的路径创建一个 SockAddr
。
Errors
如果路径长于 SUN_LEN
或包含 NULL 字节,则返回错误。
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")));
Run使用 NULL 字节创建 SocketAddr
会导致错误。
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
如果地址未命名,则返回 true
。
Examples
命名地址:
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(())
}
Run一个未命名的地址:
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>
如果它是 pathname
地址,则返回该地址的内容。
Examples
带有路径名:
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(())
}
Run没有路径名:
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
返回值的副本。 Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
从
source
执行复制分配。 Read moresource§impl Debug for SocketAddr
impl Debug for SocketAddr
1.70.0 · source§impl SocketAddrExt for SocketAddr
Available on Android or Linux only.
impl SocketAddrExt for SocketAddr
Available on Android or Linux only.
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§
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
从拥有的值中借用。 Read more