本文简要介绍rust语言中 Struct std::os::unix::net::SocketAncillary
的用法。
用法
pub struct SocketAncillary<'a> { /* fields omitted */ }
一个 Unix 套接字辅助数据结构。
示例
#![feature(unix_socket_ancillary_data)]
use std::os::unix::net::{UnixStream, SocketAncillary, AncillaryData};
use std::io::IoSliceMut;
fn main() -> std::io::Result<()> {
let sock = UnixStream::connect("/tmp/sock")?;
let mut fds = [0; 8];
let mut ancillary_buffer = [0; 128];
let mut ancillary = SocketAncillary::new(&mut ancillary_buffer[..]);
let mut buf = [1; 8];
let mut bufs = &mut [IoSliceMut::new(&mut buf[..])][..];
sock.recv_vectored_with_ancillary(bufs, &mut ancillary)?;
for ancillary_result in ancillary.messages() {
if let AncillaryData::ScmRights(scm_rights) = ancillary_result.unwrap() {
for fd in scm_rights {
println!("receive file descriptor: {}", fd);
}
}
}
Ok(())
}
相关用法
- Rust SocketAncillary.add_fds用法及代码示例
- Rust SocketAncillary.clear用法及代码示例
- Rust SocketAncillary.truncated用法及代码示例
- Rust SocketAncillary.new用法及代码示例
- Rust SocketAddrV6.ip用法及代码示例
- Rust SocketAddr.port用法及代码示例
- Rust SocketAddr.as_abstract_namespace用法及代码示例
- Rust SocketAddr.as_pathname用法及代码示例
- Rust SocketAddrV4.ip用法及代码示例
- Rust SocketAddrV6.set_ip用法及代码示例
- Rust SocketAddrV6.new用法及代码示例
- Rust SocketAddr用法及代码示例
- Rust SocketAddrV4.set_port用法及代码示例
- Rust SocketAddrV6用法及代码示例
- Rust SocketAddrV6.set_scope_id用法及代码示例
- Rust SocketAddr.is_ipv6用法及代码示例
- Rust SocketAddrV4.set_ip用法及代码示例
- Rust SocketAddrV6.flowinfo用法及代码示例
- Rust SocketAddrV6.scope_id用法及代码示例
- Rust SocketAddr.from_abstract_namespace用法及代码示例
- Rust SocketAddr.is_ipv4用法及代码示例
- Rust SocketAddrV6.set_port用法及代码示例
- Rust SocketAddr.set_port用法及代码示例
- Rust SocketAddr.ip用法及代码示例
- Rust SocketAddrV6.set_flowinfo用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Struct std::os::unix::net::SocketAncillary。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。