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
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
Formats the value using the given formatter. Read more
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