[][src]Struct romio::uds::UnixDatagram

pub struct UnixDatagram { /* fields omitted */ }

An I/O object representing a Unix datagram socket.

Methods

impl UnixDatagram[src]

pub fn bind(path: impl AsRef<Path>) -> Result<UnixDatagram>[src]

Creates a new UnixDatagram bound to the specified path.

Examples

use romio::uds::UnixDatagram;

let sock = UnixDatagram::bind("/tmp/sock")?;

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

Creates an unnamed pair of connected sockets.

This function will create a pair of interconnected Unix sockets for communicating back and forth between one another. Each socket will be associated with the event loop whose handle is also provided.

Examples

use romio::uds::UnixDatagram;

let (sock1, sock2) = UnixDatagram::pair()?;

pub fn unbound() -> Result<UnixDatagram>[src]

Creates a new UnixDatagram which is not bound to any address.

Examples

use romio::uds::UnixDatagram;

let sock = UnixDatagram::unbound()?;

pub fn poll_read_ready(&self, waker: &Waker) -> Poll<Result<Ready>>[src]

Test whether this socket is ready to be read or not.

pub fn poll_write_ready(&self, waker: &Waker) -> Poll<Result<Ready>>[src]

Test whether this socket is ready to be written to or not.

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

Returns the local address that this socket is bound to.

Examples

use romio::uds::UnixDatagram;

let stream = UnixDatagram::bind("/tmp/sock")?;
let addr = stream.local_addr()?;

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

Returns the address of this socket's peer.

The connect method will connect the socket to a peer.

Examples

use romio::uds::UnixDatagram;

let stream = UnixDatagram::bind("/tmp/sock")?;
let addr = stream.peer_addr()?;

pub fn poll_recv_from(
    &self,
    waker: &Waker,
    buf: &mut [u8]
) -> Poll<Result<(usize, SocketAddr)>>
[src]

Receives data from the socket.

On success, returns the number of bytes read and the address from whence the data came.

pub fn poll_send_to(
    &self,
    waker: &Waker,
    buf: &[u8],
    path: impl AsRef<Path>
) -> Poll<Result<usize>>
[src]

Sends data on the socket to the specified address.

On success, returns the number of bytes written.

pub fn take_error(&self) -> Result<Option<Error>>[src]

Returns the value of the SO_ERROR option.

Examples

use romio::uds::UnixDatagram;

let stream = UnixDatagram::bind("/tmp/sock")?;
if let Ok(Some(err)) = stream.take_error() {
    println!("Got error: {:?}", err);
}

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

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

This function will cause all pending and future I/O calls on the specified portions to immediately return with an appropriate value (see the documentation of Shutdown).

Examples

use romio::uds::UnixDatagram;
use std::net::Shutdown;

let stream = UnixDatagram::bind("/tmp/sock")?;
stream.shutdown(Shutdown::Both)?;

Trait Implementations

impl Debug for UnixDatagram[src]

impl AsRawFd for UnixDatagram[src]

Auto Trait Implementations

Blanket Implementations

impl<T> From for T[src]

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

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

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

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

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

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

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

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

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Erased for T