Struct tokio::net::UnixListener [−][src]
pub struct UnixListener { /* fields omitted */ }
Expand description
A Unix socket which can accept connections from other Unix sockets.
Implementations
impl UnixListener
[src]
impl UnixListener
[src]pub fn bind<P>(path: P) -> Result<UnixListener> where
P: AsRef<Path>,
[src]
pub fn bind<P>(path: P) -> Result<UnixListener> where
P: AsRef<Path>,
[src]Creates a new UnixListener
bound to the specified path.
Panics
This function panics if thread-local runtime is not set.
The runtime is usually set implicitly when this function is called
from a future driven by a tokio runtime, otherwise runtime can be set
explicitly with Handle::enter
function.
pub fn from_std(listener: UnixListener) -> Result<UnixListener>
[src]
pub fn from_std(listener: UnixListener) -> Result<UnixListener>
[src]Consumes a UnixListener
in the standard library and returns a
nonblocking UnixListener
from this crate.
The returned listener will be associated with the given event loop
specified by handle
and is ready to perform I/O.
Panics
This function panics if thread-local runtime is not set.
The runtime is usually set implicitly when this function is called
from a future driven by a tokio runtime, otherwise runtime can be set
explicitly with Handle::enter
function.
pub fn local_addr(&self) -> Result<SocketAddr>
[src]
pub fn local_addr(&self) -> Result<SocketAddr>
[src]Returns the local socket address of this listener.
pub fn take_error(&self) -> Result<Option<Error>>
[src]
pub fn take_error(&self) -> Result<Option<Error>>
[src]Returns the value of the SO_ERROR
option.
pub async fn accept(&mut self) -> Result<(UnixStream, SocketAddr)>
[src]
pub async fn accept(&mut self) -> Result<(UnixStream, SocketAddr)>
[src]Accepts a new incoming connection to this listener.
pub fn incoming(&mut self) -> Incoming<'_>
[src]
pub fn incoming(&mut self) -> Incoming<'_>
[src]Returns a stream over the connections being received on this listener.
The returned stream will never return None
and will also not yield the
peer’s SocketAddr
structure. Iterating over it is equivalent to
calling accept in a loop.
Errors
Note that accepting a connection can lead to various errors and not all of them are necessarily fatal ‒ for example having too many open file descriptors or the other side closing the connection while it waits in an accept queue. These would terminate the stream if not handled in any way.
Examples
use tokio::net::UnixListener; use tokio::stream::StreamExt; #[tokio::main] async fn main() { let mut listener = UnixListener::bind("/path/to/the/socket").unwrap(); let mut incoming = listener.incoming(); while let Some(stream) = incoming.next().await { match stream { Ok(stream) => { println!("new client!"); } Err(e) => { /* connection failed */ } } } }
Trait Implementations
impl AsRawFd for UnixListener
[src]
impl AsRawFd for UnixListener
[src]impl Debug for UnixListener
[src]
impl Debug for UnixListener
[src]impl TryFrom<UnixListener> for UnixListener
[src]
impl TryFrom<UnixListener> for UnixListener
[src]fn try_from(stream: UnixListener) -> Result<Self>
[src]
fn try_from(stream: UnixListener) -> Result<Self>
[src]Consumes stream, returning the tokio I/O object.
This is equivalent to
UnixListener::from_std(stream)
.