[−][src]Struct romio::uds::UnixDatagram
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 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 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)?;
pub fn send_to<'a, 'b>(
&'a mut self,
buf: &'b [u8],
target: &'b PathBuf
) -> SendTo<'a, 'b>
[src]
&'a mut self,
buf: &'b [u8],
target: &'b PathBuf
) -> SendTo<'a, 'b>
Sends data on the socket to the given address. On success, returns the number of bytes written.
Examples
use romio::udp::UdpSocket; const THE_MERCHANT_OF_VENICE: &[u8] = b" If you prick us, do we not bleed? If you tickle us, do we not laugh? If you poison us, do we not die? And if you wrong us, shall we not revenge? "; let addr = "/tmp/out.socket".parse()?; let target = "/tmp/in.socket".parse()?; let mut socket = UdpSocket::bind(&addr)?; socket.send_to(THE_MERCHANT_OF_VENICE, &target).await?;
pub fn recv_from<'a, 'b>(&'a mut self, buf: &'b mut [u8]) -> RecvFrom<'a, 'b>
[src]
Receives data from the socket. On success, returns the number of bytes read and the address from whence the data came.
Exampes
use romio::udp::UdpSocket; let addr = "/tmp/in.socket".parse()?; let mut socket = UdpSocket::bind(&addr)?; let mut buf = vec![0; 1024]; socket.recv_from(&mut buf).await?;
Trait Implementations
impl Debug for UnixDatagram
[src]
impl AsRawFd for UnixDatagram
[src]
impl AsyncWriteReady for UnixDatagram
[src]
type Ok = Ready
The type of successful values yielded by this trait.
type Err = Error
The type of failures yielded by this trait.
fn poll_write_ready(
self: Pin<&mut Self>,
cx: &mut Context
) -> Poll<Result<Self::Ok, Self::Err>>
[src]
self: Pin<&mut Self>,
cx: &mut Context
) -> Poll<Result<Self::Ok, Self::Err>>
Test whether this socket is ready to be written to or not.
fn poll_write_ready_unpin(
&mut self,
cx: &mut Context
) -> Poll<Result<Self::Ok, Self::Err>> where
Self: Unpin,
[src]
&mut self,
cx: &mut Context
) -> Poll<Result<Self::Ok, Self::Err>> where
Self: Unpin,
impl AsyncReadReady for UnixDatagram
[src]
type Ok = Ready
The type of successful values yielded by this trait.
type Err = Error
The type of failures yielded by this trait.
fn poll_read_ready(
self: Pin<&mut Self>,
cx: &mut Context
) -> Poll<Result<Self::Ok, Self::Err>>
[src]
self: Pin<&mut Self>,
cx: &mut Context
) -> Poll<Result<Self::Ok, Self::Err>>
Test whether this socket is ready to be read or not.
fn poll_read_ready_unpin(
&mut self,
cx: &mut Context
) -> Poll<Result<Self::Ok, Self::Err>> where
Self: Unpin,
[src]
&mut self,
cx: &mut Context
) -> Poll<Result<Self::Ok, Self::Err>> where
Self: Unpin,
impl TakeError for UnixDatagram
[src]
type Ok = Error
The type of successful values yielded by this trait.
type Err = Error
The type of failures yielded by this trait.
fn take_error(&self) -> Result<Option<Self::Ok>, Self::Err>
[src]
Returns the value of the SO_ERROR
option.
Examples
use romio::raw::TakeError; use romio::uds::UnixDatagram; let stream = UnixDatagram::bind("/tmp/sock")?; if let Ok(Some(err)) = stream.take_error() { println!("Got error: {:?}", err); }
impl AsyncDatagram for UnixDatagram
[src]
type Sender = SocketAddr
Specifies which target to send the data to.
type Receiver = PathBuf
Specifies which target the data was received from.
type Err = Error
The type of failures yielded by this trait.
fn poll_send_to(
self: Pin<&mut Self>,
cx: &mut Context,
buf: &[u8],
receiver: &Self::Receiver
) -> Poll<Result<usize>>
[src]
self: Pin<&mut Self>,
cx: &mut Context,
buf: &[u8],
receiver: &Self::Receiver
) -> Poll<Result<usize>>
fn poll_recv_from(
self: Pin<&mut Self>,
cx: &mut Context,
buf: &mut [u8]
) -> Poll<Result<(usize, Self::Sender)>>
[src]
self: Pin<&mut Self>,
cx: &mut Context,
buf: &mut [u8]
) -> Poll<Result<(usize, Self::Sender)>>
Auto Trait Implementations
impl Unpin for UnixDatagram
impl Sync for UnixDatagram
impl Send for UnixDatagram
impl !UnwindSafe for UnixDatagram
impl !RefUnwindSafe for UnixDatagram
Blanket Implementations
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
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>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,