# Struct bitflags::__core::os::ext::net::UnixListener [−] [src]

    pub struct UnixListener(_);

Unstable (`unix_socket`)

: newly added

A structure representing a Unix domain socket server.

# Examples

    #![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>(path: P) -> Result<UnixListener, Error> where P: AsRef<Path>`

Unstable (`unix_socket`)

: newly added

Creates a new `UnixListener` bound to the specified socket.

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

Unstable (`unix_socket`)

: 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, Error>`

Unstable (`unix_socket`)

: 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, Error>`

Unstable (`unix_socket`)

: newly added

Returns the local socket address of this listener.

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

Unstable (`unix_socket`)

: newly added

Moves the socket into or out of nonblocking mode.

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

Unstable (`unix_socket`)

: newly added

Returns the value of the `SO_ERROR` option.

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

Unstable (`unix_socket`)

: 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<(), Error>`

Unstable (`unix_socket`)

: newly added

### `impl AsRawFd for UnixListener`

#### `fn as_raw_fd(&self) -> i32`

Unstable (`unix_socket`)

: newly added

### `impl FromRawFd for UnixListener`

#### `unsafe fn from_raw_fd(fd: i32) -> UnixListener`

Unstable (`unix_socket`)

: newly added

### `impl IntoRawFd for UnixListener`

#### `fn into_raw_fd(self) -> i32`

Unstable (`unix_socket`)

: newly added

### `impl<'a> IntoIterator for &'a UnixListener`

#### `type Item = Result<UnixStream, Error>`

Unstable (`unix_socket`)

: newly added

#### `type IntoIter = Incoming<'a>`

Unstable (`unix_socket`)

: newly added

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

Unstable (`unix_socket`)

: newly added

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
⇤
  Move up in search results
⇥
  Move down in search results
⏎
  Go to active search result

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)