Struct async_net::unix::UnixStream[][src]

pub struct UnixStream { /* fields omitted */ }

A Unix connection.

A UnixStream can be created by connecting to an endpoint or by accepting an incoming connection.

UnixStream is a bidirectional stream that implements traits [AsyncRead] and [AsyncWrite].

Cloning a UnixStream creates another handle to the same socket. The socket will be closed when all handles to it are dropped. The reading and writing portions of the connection can also be shut down individually with the shutdown() method.

Examples

use async_net::unix::UnixStream;
use futures_lite::prelude::*;

let mut stream = UnixStream::connect("/tmp/socket").await?;
stream.write_all(b"hello").await?;

let mut buf = vec![0u8; 1024];
let n = stream.read(&mut buf).await?;

Implementations

impl UnixStream[src]

pub async fn connect<P: AsRef<Path>>(path: P) -> Result<UnixStream>[src]

Creates a Unix connection to given path.

Examples

use async_net::unix::UnixStream;

let stream = UnixStream::connect("/tmp/socket").await?;

pub fn pair() -> Result<(UnixStream, UnixStream)>[src]

Creates a pair of connected Unix sockets.

Examples

use async_net::unix::UnixStream;

let (stream1, stream2) = UnixStream::pair()?;

pub fn local_addr(&self) -> Result<SocketAddr>[src]

Returns the local address this socket is connected to.

Examples

use async_net::unix::UnixStream;

let stream = UnixStream::connect("/tmp/socket").await?;
println!("Local address is {:?}", stream.local_addr()?);

pub fn peer_addr(&self) -> Result<SocketAddr>[src]

Returns the remote address this socket is connected to.

Examples

use async_net::unix::UnixStream;

let stream = UnixStream::connect("/tmp/socket").await?;
println!("Connected to {:?}", stream.peer_addr()?);

pub fn shutdown(&self, how: Shutdown) -> Result<()>[src]

Shuts down the read half, write half, or both halves of this connection.

This method will cause all pending and future I/O in the given directions to return immediately with an appropriate value (see the documentation of Shutdown).

use async_net::{Shutdown, unix::UnixStream};

let stream = UnixStream::connect("/tmp/socket").await?;
stream.shutdown(Shutdown::Both)?;

Trait Implementations

impl AsRawFd for UnixStream[src]

impl AsyncRead for UnixStream[src]

impl AsyncWrite for UnixStream[src]

impl Clone for UnixStream[src]

impl Debug for UnixStream[src]

impl From<Async<UnixStream>> for UnixStream[src]

impl RefUnwindSafe for UnixStream[src]

impl TryFrom<UnixStream> for UnixStream[src]

type Error = Error

The type returned in the event of a conversion error.

impl UnwindSafe for UnixStream[src]

Auto Trait Implementations

impl Send for UnixStream

impl Sync for UnixStream

impl Unpin for UnixStream

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<R> AsyncReadExt for R where
    R: AsyncRead + ?Sized
[src]

impl<W> AsyncWriteExt for W where
    W: AsyncWrite + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.