pub struct UnixListener(_);
This is supported on Unix only.
A structure representing a Unix domain socket server.
use std::thread;
use std::os::unix::net::{UnixStream, UnixListener};
fn handle_client(stream: UnixStream) {
}
let listener = UnixListener::bind("/path/to/the/socket").unwrap();
for stream in listener.incoming() {
match stream {
Ok(stream) => {
thread::spawn(|| handle_client(stream));
}
Err(err) => {
break;
}
}
}Run
This is supported on Unix only.
Creates a new UnixListener
bound to the specified socket.
use std::os::unix::net::UnixListener;
let listener = match UnixListener::bind("/path/to/the/socket") {
Ok(sock) => sock,
Err(e) => {
println!("Couldn't connect: {:?}", e);
return
}
};Run
This is supported on Unix only.
Accepts a new incoming connection to this listener.
This function will block the calling thread until a new Unix connection
is established. When established, the corresponding UnixStream
and
the remote peer's address will be returned.
use std::os::unix::net::UnixListener;
let listener = UnixListener::bind("/path/to/the/socket").unwrap();
match listener.accept() {
Ok((socket, addr)) => println!("Got a client: {:?}", addr),
Err(e) => println!("accept function failed: {:?}", e),
}Run
This is supported on Unix only.
Creates a new independently owned handle to the underlying socket.
The returned UnixListener
is a reference to the same socket that this
object references. Both handles can be used to accept incoming
connections and options set on one listener will affect the other.
use std::os::unix::net::UnixListener;
let listener = UnixListener::bind("/path/to/the/socket").unwrap();
let listener_copy = listener.try_clone().expect("try_clone failed");Run
This is supported on Unix only.
Returns the local socket address of this listener.
use std::os::unix::net::UnixListener;
let listener = UnixListener::bind("/path/to/the/socket").unwrap();
let addr = listener.local_addr().expect("Couldn't get local address");Run
This is supported on Unix only.
Moves the socket into or out of nonblocking mode.
use std::os::unix::net::UnixListener;
let listener = UnixListener::bind("/path/to/the/socket").unwrap();
listener.set_nonblocking(true).expect("Couldn't set non blocking");Run
This is supported on Unix only.
Returns the value of the SO_ERROR
option.
use std::os::unix::net::UnixListener;
let listener = UnixListener::bind("/tmp/sock").unwrap();
if let Ok(Some(err)) = listener.take_error() {
println!("Got error: {:?}", err);
}Run
On Redox this always returns None.
This is supported on Unix only.
Returns an iterator over incoming connections.
The iterator will never return None
and will also not yield the
peer's SocketAddr
structure.
use std::thread;
use std::os::unix::net::{UnixStream, UnixListener};
fn handle_client(stream: UnixStream) {
}
let listener = UnixListener::bind("/path/to/the/socket").unwrap();
for stream in listener.incoming() {
match stream {
Ok(stream) => {
thread::spawn(|| handle_client(stream));
}
Err(err) => {
break;
}
}
}Run
[+]
[−]
This is supported on Unix only.
[+]
[−]
This is supported on Unix only.
Constructs a new instance of Self
from the given raw file descriptor. Read more
[+]
[−]
This is supported on Unix only.
Consumes this object, returning the raw underlying file descriptor. Read more
[+]
[+]
[−]
type Error = !
🔬 This is a nightly-only experimental API. (
try_from
#33417)
The type returned in the event of a conversion error.
[−]
🔬 This is a nightly-only experimental API. (
try_from
#33417)
[−]
[−]
type Error = <U as TryFrom<T>>::Error
🔬 This is a nightly-only experimental API. (
try_from
#33417)
The type returned in the event of a conversion error.
[−]
🔬 This is a nightly-only experimental API. (
try_from
#33417)
[−]
[−]
[−]
[−]
[−]
🔬 This is a nightly-only experimental API. (get_type_id
#27745)
this method will likely be replaced by an associated static