Struct std::os::unix::net::UnixStream 1.10.0[−][src]
pub struct UnixStream(_);
This is supported on Unix only.
Expand description
Unix 流套接字。
Examples
use std::os::unix::net::UnixStream; use std::io::prelude::*; fn main() -> std::io::Result<()> { let mut stream = UnixStream::connect("/path/to/my/socket")?; stream.write_all(b"hello world")?; let mut response = String::new(); stream.read_to_string(&mut response)?; println!("{}", response); Ok(()) }Run
Implementations
为基础套接字创建一个新的独立拥有的句柄。
返回的 UnixStream
是与此 object 引用相同的流的引用。
两个句柄将读取和写入相同的数据流,并且在一个流上设置的选项将传播到另一流。
Examples
use std::os::unix::net::UnixStream; fn main() -> std::io::Result<()> { let socket = UnixStream::connect("/tmp/sock")?; let sock_copy = socket.try_clone().expect("Couldn't clone socket"); Ok(()) }Run
设置套接字的读取超时。
如果提供的值为 None
,则 read
调用将无限期阻塞。
如果将零 Duration
传递给此方法,则返回 Err
。
Examples
use std::os::unix::net::UnixStream; use std::time::Duration; fn main() -> std::io::Result<()> { let socket = UnixStream::connect("/tmp/sock")?; socket.set_read_timeout(Some(Duration::new(1, 0))).expect("Couldn't set read timeout"); Ok(()) }Run
use std::io; use std::os::unix::net::UnixStream; use std::time::Duration; fn main() -> std::io::Result<()> { let socket = UnixStream::connect("/tmp/sock")?; let result = socket.set_read_timeout(Some(Duration::new(0, 0))); let err = result.unwrap_err(); assert_eq!(err.kind(), io::ErrorKind::InvalidInput); Ok(()) }Run
设置套接字的写超时。
如果提供的值为 None
,则 write
调用将无限期阻塞。
如果将零 Duration
传递给此方法,则返回 Err
。
Examples
use std::os::unix::net::UnixStream; use std::time::Duration; fn main() -> std::io::Result<()> { let socket = UnixStream::connect("/tmp/sock")?; socket.set_write_timeout(Some(Duration::new(1, 0))) .expect("Couldn't set write timeout"); Ok(()) }Run
use std::io; use std::net::UdpSocket; use std::time::Duration; fn main() -> std::io::Result<()> { let socket = UdpSocket::bind("127.0.0.1:34254")?; let result = socket.set_write_timeout(Some(Duration::new(0, 0))); let err = result.unwrap_err(); assert_eq!(err.kind(), io::ErrorKind::InvalidInput); Ok(()) }Run
返回此套接字的读取超时。
Examples
use std::os::unix::net::UnixStream; use std::time::Duration; fn main() -> std::io::Result<()> { let socket = UnixStream::connect("/tmp/sock")?; socket.set_read_timeout(Some(Duration::new(1, 0))).expect("Couldn't set read timeout"); assert_eq!(socket.read_timeout()?, Some(Duration::new(1, 0))); Ok(()) }Run
返回此套接字的写入超时。
Examples
use std::os::unix::net::UnixStream; use std::time::Duration; fn main() -> std::io::Result<()> { let socket = UnixStream::connect("/tmp/sock")?; socket.set_write_timeout(Some(Duration::new(1, 0))) .expect("Couldn't set write timeout"); assert_eq!(socket.write_timeout()?, Some(Duration::new(1, 0))); Ok(()) }Run
移动套接字以将 unix 凭据作为 SocketAncillary
中的控制消息传递。
设置套接字选项 SO_PASSCRED
。
Examples
ⓘ
#![feature(unix_socket_ancillary_data)] use std::os::unix::net::UnixStream; fn main() -> std::io::Result<()> { let socket = UnixStream::connect("/tmp/sock")?; socket.set_passcred(true).expect("Couldn't set passcred"); Ok(()) }Run
获取用于在 SocketAncillary
中传递 unix 凭据的套接字的当前值。
可以通过 set_passcred
更改此值。
获取套接字选项 SO_PASSCRED
。
关闭此连接的读取,写入或两半。
此函数将导致对指定部分的所有未决和 future I/O 调用立即返回适当的值 (请参见 Shutdown
的文档)。
Examples
use std::os::unix::net::UnixStream; use std::net::Shutdown; fn main() -> std::io::Result<()> { let socket = UnixStream::connect("/tmp/sock")?; socket.shutdown(Shutdown::Both).expect("shutdown function failed"); Ok(()) }Run
从套接字所连接的远程地址接收套接字上的数据,而无需从队列中删除该数据。
成功时,返回偷看的字节数。
连续调用返回相同的数据。
这是通过将 MSG_PEEK
作为标志传递到基础 recv
系统调用来完成的。
Examples
#![feature(unix_socket_peek)] use std::os::unix::net::UnixStream; fn main() -> std::io::Result<()> { let socket = UnixStream::connect("/tmp/sock")?; let mut buf = [0; 10]; let len = socket.peek(&mut buf).expect("peek failed"); Ok(()) }Run
Trait Implementations
unsafe fn from_raw_fd(fd: RawFd) -> UnixStreamⓘNotable traits for UnixStreamimpl Read for UnixStreamimpl<'a> Read for &'a UnixStreamimpl Write for UnixStreamimpl<'a> Write for &'a UnixStream
[src]
unsafe fn from_raw_fd(fd: RawFd) -> UnixStreamⓘNotable traits for UnixStreamimpl Read for UnixStreamimpl<'a> Read for &'a UnixStreamimpl Write for UnixStreamimpl<'a> Write for &'a UnixStream
[src]Notable traits for UnixStream
impl Read for UnixStreamimpl<'a> Read for &'a UnixStreamimpl Write for UnixStreamimpl<'a> Write for &'a UnixStream
根据给定的原始文件描述符构造 Self
的新实例。 Read more
使用此 object,返回原始基础文件描述符。 Read more
将格式化的字符串写入此 writer,返回遇到的任何错误。 Read more
将格式化的字符串写入此 writer,返回遇到的任何错误。 Read more