pub struct UnixListener(_);
Expand description

A Unix domain socket server

Examples

use std::thread;
use uds_windows::{UnixStream, UnixListener};

fn handle_client(stream: UnixStream) {
    // ...
}

let listener = UnixListener::bind("/path/to/the/socket").unwrap();

// accept connections and process them, spawning a new thread for each one
for stream in listener.incoming() {
    match stream {
        Ok(stream) => {
            /* connection succeeded */
            thread::spawn(|| handle_client(stream));
        }
        Err(err) => {
            /* connection failed */
            break;
        }
    }
}

Implementations

Creates a new UnixListener bound to the specified socket.

Examples
use uds_windows::UnixListener;

let listener = match UnixListener::bind("/path/to/the/socket") {
    Ok(sock) => sock,
    Err(e) => {
        println!("Couldn't connect: {:?}", e);
        return
    }
};

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.

Examples
use uds_windows::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),
}

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.

Examples
use uds_windows::UnixListener;

let listener = UnixListener::bind("/path/to/the/socket").unwrap();

let listener_copy = listener.try_clone().expect("Couldn't clone socket");

Returns the local socket address of this listener.

Examples
use uds_windows::UnixListener;

let listener = UnixListener::bind("/path/to/the/socket").unwrap();

let addr = listener.local_addr().expect("Couldn't get local address");

Moves the socket into or out of nonblocking mode.

Examples
use uds_windows::UnixListener;

let listener = UnixListener::bind("/path/to/the/socket").unwrap();

listener.set_nonblocking(true).expect("Couldn't set nonblocking");

Returns the value of the SO_ERROR option.

Examples
use uds_windows::UnixListener;

let listener = UnixListener::bind("/tmp/sock").unwrap();

if let Ok(Some(err)) = listener.take_error() {
    println!("Got error: {:?}", err);
}

Returns an iterator over incoming connections.

The iterator will never return None and will also not yield the peer’s SocketAddr structure.

Examples
use std::thread;
use uds_windows::{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;
        }
    }
}

Trait Implementations

Extracts the raw socket. Read more

Formats the value using the given formatter. Read more

Constructs a new I/O object from the specified raw socket. Read more

The type of the elements being iterated over.

Which kind of iterator are we turning this into?

Creates an iterator from a value. Read more

Consumes this object, returning the raw underlying socket. Read more

Perform an accept operation on this listener, accepting a connection in an overlapped fashion. Read more

Once an accept_overlapped has finished, this function needs to be called to finish the accept operation. Read more

Calls the GetOverlappedResult function to get the result of an overlapped operation for this handle. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.