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[src]

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[src]

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

Unstable (unix_socket #32312)

: newly added

impl AsRawFd for UnixListener[src]

fn as_raw_fd(&self) -> RawFd

Unstable (unix_socket #32312)

: newly added

impl FromRawFd for UnixListener[src]

unsafe fn from_raw_fd(fd: RawFd) -> UnixListener

Unstable (unix_socket #32312)

: newly added

impl IntoRawFd for UnixListener[src]

fn into_raw_fd(self) -> RawFd

Unstable (unix_socket #32312)

: newly added

impl<'a> IntoIterator for &'a UnixListener[src]

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