This is supported on Unix only.
Connects to the socket named by path
.
use std::os::unix::net::UnixStream;
let socket = match UnixStream::connect("/tmp/sock") {
Ok(sock) => sock,
Err(e) => {
println!("Couldn't connect: {:?}", e);
return
}
};Run
This is supported on Unix only.
Creates an unnamed pair of connected sockets.
Returns two UnixStream
s which are connected to each other.
use std::os::unix::net::UnixStream;
let (sock1, sock2) = match UnixStream::pair() {
Ok((sock1, sock2)) => (sock1, sock2),
Err(e) => {
println!("Couldn't create a pair of sockets: {:?}", e);
return
}
};Run
This is supported on Unix only.
Creates a new independently owned handle to the underlying socket.
The returned UnixStream
is a reference to the same stream that this
object references. Both handles will read and write the same stream of
data, and options set on one stream will be propagated to the other
stream.
use std::os::unix::net::UnixStream;
let socket = UnixStream::connect("/tmp/sock").unwrap();
let sock_copy = socket.try_clone().expect("Couldn't clone socket");Run
This is supported on Unix only.
Returns the socket address of the local half of this connection.
use std::os::unix::net::UnixStream;
let socket = UnixStream::connect("/tmp/sock").unwrap();
let addr = socket.local_addr().expect("Couldn't get local address");Run
This is supported on Unix only.
Returns the socket address of the remote half of this connection.
use std::os::unix::net::UnixStream;
let socket = UnixStream::connect("/tmp/sock").unwrap();
let addr = socket.peer_addr().expect("Couldn't get peer address");Run
This is supported on Unix only.
Sets the read timeout for the socket.
If the provided value is None
, then read
calls will block
indefinitely. An Err
is returned if the zero Duration
is passed to this
method.
use std::os::unix::net::UnixStream;
use std::time::Duration;
let socket = UnixStream::connect("/tmp/sock").unwrap();
socket.set_read_timeout(Some(Duration::new(1, 0))).expect("Couldn't set read timeout");Run
An Err
is returned if the zero Duration
is passed to this
method:
use std::io;
use std::os::unix::net::UnixStream;
use std::time::Duration;
let socket = UnixStream::connect("/tmp/sock").unwrap();
let result = socket.set_read_timeout(Some(Duration::new(0, 0)));
let err = result.unwrap_err();
assert_eq!(err.kind(), io::ErrorKind::InvalidInput)Run
This is supported on Unix only.
Sets the write timeout for the socket.
If the provided value is None
, then write
calls will block
indefinitely. An Err
is returned if the zero Duration
is
passed to this method.
use std::os::unix::net::UnixStream;
use std::time::Duration;
let socket = UnixStream::connect("/tmp/sock").unwrap();
socket.set_write_timeout(Some(Duration::new(1, 0))).expect("Couldn't set write timeout");Run
An Err
is returned if the zero Duration
is passed to this
method:
use std::io;
use std::net::UdpSocket;
use std::time::Duration;
let socket = UdpSocket::bind("127.0.0.1:34254").unwrap();
let result = socket.set_write_timeout(Some(Duration::new(0, 0)));
let err = result.unwrap_err();
assert_eq!(err.kind(), io::ErrorKind::InvalidInput)Run
This is supported on Unix only.
Returns the read timeout of this socket.
use std::os::unix::net::UnixStream;
use std::time::Duration;
let socket = UnixStream::connect("/tmp/sock").unwrap();
socket.set_read_timeout(Some(Duration::new(1, 0))).expect("Couldn't set read timeout");
assert_eq!(socket.read_timeout().unwrap(), Some(Duration::new(1, 0)));Run
This is supported on Unix only.
Returns the write timeout of this socket.
use std::os::unix::net::UnixStream;
use std::time::Duration;
let socket = UnixStream::connect("/tmp/sock").unwrap();
socket.set_write_timeout(Some(Duration::new(1, 0))).expect("Couldn't set write timeout");
assert_eq!(socket.write_timeout().unwrap(), Some(Duration::new(1, 0)));Run
This is supported on Unix only.
Moves the socket into or out of nonblocking mode.
use std::os::unix::net::UnixStream;
let socket = UnixStream::connect("/tmp/sock").unwrap();
socket.set_nonblocking(true).expect("Couldn't set nonblocking");Run
This is supported on Unix only.
Returns the value of the SO_ERROR
option.
use std::os::unix::net::UnixStream;
let socket = UnixStream::connect("/tmp/sock").unwrap();
if let Ok(Some(err)) = socket.take_error() {
println!("Got error: {:?}", err);
}Run
This is supported on Unix only.
Shuts down the read, write, or both halves of this connection.
This function will cause all pending and future I/O calls on the
specified portions to immediately return with an appropriate value
(see the documentation of Shutdown
).
use std::os::unix::net::UnixStream;
use std::net::Shutdown;
let socket = UnixStream::connect("/tmp/sock").unwrap();
socket.shutdown(Shutdown::Both).expect("shutdown function failed");Run