[−][src]Struct smol::net::unix::UnixStream
A Unix connection.
A UnixStream
can be created by connect
ing to an endpoint or by
accept
ing 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::*; 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>(path: P) -> Result<UnixStream, Error> where
P: AsRef<Path>,
[src]
P: AsRef<Path>,
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), Error>
[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, Error>
[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, Error>
[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<(), Error>
[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]
fn poll_read(
self: Pin<&mut &'_ UnixStream>,
cx: &mut Context<'_>,
buf: &mut [u8]
) -> Poll<Result<usize, Error>>
[src]
self: Pin<&mut &'_ UnixStream>,
cx: &mut Context<'_>,
buf: &mut [u8]
) -> Poll<Result<usize, Error>>
fn poll_read_vectored(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
bufs: &mut [IoSliceMut<'_>]
) -> Poll<Result<usize, Error>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>,
bufs: &mut [IoSliceMut<'_>]
) -> Poll<Result<usize, Error>>
impl AsyncRead for UnixStream
[src]
fn poll_read(
self: Pin<&mut UnixStream>,
cx: &mut Context<'_>,
buf: &mut [u8]
) -> Poll<Result<usize, Error>>
[src]
self: Pin<&mut UnixStream>,
cx: &mut Context<'_>,
buf: &mut [u8]
) -> Poll<Result<usize, Error>>
fn poll_read_vectored(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
bufs: &mut [IoSliceMut<'_>]
) -> Poll<Result<usize, Error>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>,
bufs: &mut [IoSliceMut<'_>]
) -> Poll<Result<usize, Error>>
impl<'_> AsyncWrite for &'_ UnixStream
[src]
fn poll_write(
self: Pin<&mut &'_ UnixStream>,
cx: &mut Context<'_>,
buf: &[u8]
) -> Poll<Result<usize, Error>>
[src]
self: Pin<&mut &'_ UnixStream>,
cx: &mut Context<'_>,
buf: &[u8]
) -> Poll<Result<usize, Error>>
fn poll_flush(
self: Pin<&mut &'_ UnixStream>,
cx: &mut Context<'_>
) -> Poll<Result<(), Error>>
[src]
self: Pin<&mut &'_ UnixStream>,
cx: &mut Context<'_>
) -> Poll<Result<(), Error>>
fn poll_close(
self: Pin<&mut &'_ UnixStream>,
cx: &mut Context<'_>
) -> Poll<Result<(), Error>>
[src]
self: Pin<&mut &'_ UnixStream>,
cx: &mut Context<'_>
) -> Poll<Result<(), Error>>
fn poll_write_vectored(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
bufs: &[IoSlice<'_>]
) -> Poll<Result<usize, Error>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>,
bufs: &[IoSlice<'_>]
) -> Poll<Result<usize, Error>>
impl AsyncWrite for UnixStream
[src]
fn poll_write(
self: Pin<&mut UnixStream>,
cx: &mut Context<'_>,
buf: &[u8]
) -> Poll<Result<usize, Error>>
[src]
self: Pin<&mut UnixStream>,
cx: &mut Context<'_>,
buf: &[u8]
) -> Poll<Result<usize, Error>>
fn poll_flush(
self: Pin<&mut UnixStream>,
cx: &mut Context<'_>
) -> Poll<Result<(), Error>>
[src]
self: Pin<&mut UnixStream>,
cx: &mut Context<'_>
) -> Poll<Result<(), Error>>
fn poll_close(
self: Pin<&mut UnixStream>,
cx: &mut Context<'_>
) -> Poll<Result<(), Error>>
[src]
self: Pin<&mut UnixStream>,
cx: &mut Context<'_>
) -> Poll<Result<(), Error>>
fn poll_write_vectored(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
bufs: &[IoSlice<'_>]
) -> Poll<Result<usize, Error>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>,
bufs: &[IoSlice<'_>]
) -> Poll<Result<usize, Error>>
impl Clone for UnixStream
[src]
fn clone(&self) -> UnixStream
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for UnixStream
[src]
Auto Trait Implementations
impl RefUnwindSafe for UnixStream
impl Send for UnixStream
impl Sync for UnixStream
impl Unpin for UnixStream
impl UnwindSafe for UnixStream
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<R> AsyncReadExt for R where
R: AsyncRead + ?Sized,
[src]
R: AsyncRead + ?Sized,
fn read(&'a mut self, buf: &'a mut [u8]) -> ReadFuture<'a, Self>ⓘNotable traits for ReadFuture<'_, R>
impl<'_, R> Future for ReadFuture<'_, R> where
R: Unpin + AsyncRead + ?Sized, type Output = Result<usize, Error>;
where
Self: Unpin,
[src]
Notable traits for ReadFuture<'_, R>
impl<'_, R> Future for ReadFuture<'_, R> where
R: Unpin + AsyncRead + ?Sized, type Output = Result<usize, Error>;
Self: Unpin,
fn read_vectored(
&'a mut self,
bufs: &'a mut [IoSliceMut<'a>]
) -> ReadVectoredFuture<'a, Self>ⓘNotable traits for ReadVectoredFuture<'_, R>
impl<'_, R> Future for ReadVectoredFuture<'_, R> where
R: Unpin + AsyncRead + ?Sized, type Output = Result<usize, Error>;
where
Self: Unpin,
[src]
&'a mut self,
bufs: &'a mut [IoSliceMut<'a>]
) -> ReadVectoredFuture<'a, Self>ⓘ
Notable traits for ReadVectoredFuture<'_, R>
impl<'_, R> Future for ReadVectoredFuture<'_, R> where
R: Unpin + AsyncRead + ?Sized, type Output = Result<usize, Error>;
Self: Unpin,
fn read_to_end(&'a mut self, buf: &'a mut Vec<u8>) -> ReadToEndFuture<'a, Self>ⓘNotable traits for ReadToEndFuture<'_, R>
impl<'_, R> Future for ReadToEndFuture<'_, R> where
R: Unpin + AsyncRead + ?Sized, type Output = Result<usize, Error>;
where
Self: Unpin,
[src]
Notable traits for ReadToEndFuture<'_, R>
impl<'_, R> Future for ReadToEndFuture<'_, R> where
R: Unpin + AsyncRead + ?Sized, type Output = Result<usize, Error>;
Self: Unpin,
fn read_to_string(
&'a mut self,
buf: &'a mut String
) -> ReadToStringFuture<'a, Self>ⓘNotable traits for ReadToStringFuture<'_, R>
impl<'_, R> Future for ReadToStringFuture<'_, R> where
R: Unpin + AsyncRead + ?Sized, type Output = Result<usize, Error>;
where
Self: Unpin,
[src]
&'a mut self,
buf: &'a mut String
) -> ReadToStringFuture<'a, Self>ⓘ
Notable traits for ReadToStringFuture<'_, R>
impl<'_, R> Future for ReadToStringFuture<'_, R> where
R: Unpin + AsyncRead + ?Sized, type Output = Result<usize, Error>;
Self: Unpin,
fn read_exact(&'a mut self, buf: &'a mut [u8]) -> ReadExactFuture<'a, Self>ⓘNotable traits for ReadExactFuture<'_, R>
impl<'_, R> Future for ReadExactFuture<'_, R> where
R: Unpin + AsyncRead + ?Sized, type Output = Result<(), Error>;
where
Self: Unpin,
[src]
Notable traits for ReadExactFuture<'_, R>
impl<'_, R> Future for ReadExactFuture<'_, R> where
R: Unpin + AsyncRead + ?Sized, type Output = Result<(), Error>;
Self: Unpin,
fn take(self, limit: u64) -> Take<Self>
[src]
fn bytes(self) -> Bytes<Self>
[src]
fn chain<R>(self, next: R) -> Chain<Self, R> where
R: AsyncRead,
[src]
R: AsyncRead,
impl<W> AsyncWriteExt for W where
W: AsyncWrite + ?Sized,
[src]
W: AsyncWrite + ?Sized,
fn write(&'a mut self, buf: &'a [u8]) -> WriteFuture<'a, Self>ⓘNotable traits for WriteFuture<'_, W>
impl<'_, W> Future for WriteFuture<'_, W> where
W: Unpin + AsyncWrite + ?Sized, type Output = Result<usize, Error>;
where
Self: Unpin,
[src]
Notable traits for WriteFuture<'_, W>
impl<'_, W> Future for WriteFuture<'_, W> where
W: Unpin + AsyncWrite + ?Sized, type Output = Result<usize, Error>;
Self: Unpin,
fn write_vectored(
&'a mut self,
bufs: &'a [IoSlice<'a>]
) -> WriteVectoredFuture<'a, Self>ⓘNotable traits for WriteVectoredFuture<'_, W>
impl<'_, W> Future for WriteVectoredFuture<'_, W> where
W: Unpin + AsyncWrite + ?Sized, type Output = Result<usize, Error>;
where
Self: Unpin,
[src]
&'a mut self,
bufs: &'a [IoSlice<'a>]
) -> WriteVectoredFuture<'a, Self>ⓘ
Notable traits for WriteVectoredFuture<'_, W>
impl<'_, W> Future for WriteVectoredFuture<'_, W> where
W: Unpin + AsyncWrite + ?Sized, type Output = Result<usize, Error>;
Self: Unpin,
fn write_all(&'a mut self, buf: &'a [u8]) -> WriteAllFuture<'a, Self>ⓘNotable traits for WriteAllFuture<'_, W>
impl<'_, W> Future for WriteAllFuture<'_, W> where
W: Unpin + AsyncWrite + ?Sized, type Output = Result<(), Error>;
where
Self: Unpin,
[src]
Notable traits for WriteAllFuture<'_, W>
impl<'_, W> Future for WriteAllFuture<'_, W> where
W: Unpin + AsyncWrite + ?Sized, type Output = Result<(), Error>;
Self: Unpin,
fn flush(&mut self) -> FlushFuture<'_, Self>ⓘNotable traits for FlushFuture<'_, W>
impl<'_, W> Future for FlushFuture<'_, W> where
W: Unpin + AsyncWrite + ?Sized, type Output = Result<(), Error>;
where
Self: Unpin,
[src]
Notable traits for FlushFuture<'_, W>
impl<'_, W> Future for FlushFuture<'_, W> where
W: Unpin + AsyncWrite + ?Sized, type Output = Result<(), Error>;
Self: Unpin,
fn close(&mut self) -> CloseFuture<'_, Self>ⓘNotable traits for CloseFuture<'_, W>
impl<'_, W> Future for CloseFuture<'_, W> where
W: Unpin + AsyncWrite + ?Sized, type Output = Result<(), Error>;
where
Self: Unpin,
[src]
Notable traits for CloseFuture<'_, W>
impl<'_, W> Future for CloseFuture<'_, W> where
W: Unpin + AsyncWrite + ?Sized, type Output = Result<(), Error>;
Self: Unpin,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut Tⓘ
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,