Struct std::os::unix::net::UnixListener [] [src]

pub struct UnixListener(_);
Unstable (unix_socket #32312)

: newly added

A structure representing a Unix domain socket server.

Examples

#![feature(unix_socket)] fn main() { use std::thread; use std::os::unix::net::{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; } } } // close the listener socket drop(listener); }
#![feature(unix_socket)]

use std::thread;
use std::os::unix::net::{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;
        }
    }
}

// close the listener socket
drop(listener);

Methods

impl UnixListener

fn bind<P: AsRef<Path>>(path: P) -> Result<UnixListener>

Unstable (unix_socket #32312)

: newly added

Creates a new UnixListener bound to the specified socket.

fn accept(&self) -> Result<(UnixStream, SocketAddr)>

Unstable (unix_socket #32312)

: newly added

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 corersponding UnixStream and the remote peer's address will be returned.

fn try_clone(&self) -> Result<UnixListener>

Unstable (unix_socket #32312)

: newly added

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.

fn local_addr(&self) -> Result<SocketAddr>

Unstable (unix_socket #32312)

: newly added

Returns the local socket address of this listener.

fn set_nonblocking(&self, nonblocking: bool) -> Result<()>

Unstable (unix_socket #32312)

: newly added

Moves the socket into or out of nonblocking mode.

fn take_error(&self) -> Result<Option<Error>>

Unstable (unix_socket #32312)

: newly added

Returns the value of the SO_ERROR option.

fn incoming<'a>(&'a self) -> Incoming<'a>

Unstable (unix_socket #32312)

: newly added

Returns an iterator over incoming connections.

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

Trait Implementations

impl Debug for UnixListener

fn fmt(&self, fmt: &mut Formatter) -> Result

Unstable (unix_socket #32312)

: newly added

impl AsRawFd for UnixListener

fn as_raw_fd(&self) -> RawFd

Unstable (unix_socket #32312)

: newly added

impl FromRawFd for UnixListener

unsafe fn from_raw_fd(fd: RawFd) -> UnixListener

Unstable (unix_socket #32312)

: newly added

impl IntoRawFd for UnixListener

fn into_raw_fd(self) -> RawFd

Unstable (unix_socket #32312)

: newly added

impl<'a> IntoIterator for &'a UnixListener

type Item = Result<UnixStream>

Unstable (unix_socket #32312)

: newly added

type IntoIter = Incoming<'a>

Unstable (unix_socket #32312)

: newly added

fn into_iter(self) -> Incoming<'a>

Unstable (unix_socket #32312)

: newly added