pub struct DatagramSocket(/* private fields */);
Expand description
An I/O object representing a datagram socket.
Implementations§
Source§impl DatagramSocket
impl DatagramSocket
Sourcepub fn new(domain: Domain, protocol: Option<Protocol>) -> Result<Self>
pub fn new(domain: Domain, protocol: Option<Protocol>) -> Result<Self>
Create a new async datagram socket.
Sourcepub fn new_from_socket(socket: Socket) -> Result<Self>
pub fn new_from_socket(socket: Socket) -> Result<Self>
Create a new async datagram socket from an existing socket.
Sourcepub fn local_addr(&self) -> Result<SockAddr>
pub fn local_addr(&self) -> Result<SockAddr>
Returns the socket address that this socket was created from.
Sourcepub fn recv_from<'a>(&'a self, buf: &'a mut [u8]) -> RecvFrom<'a> ⓘ
pub fn recv_from<'a>(&'a self, buf: &'a mut [u8]) -> RecvFrom<'a> ⓘ
Receive a datagram asynchronously from the socket.
The returned future will resolve with the number of bytes read and the source address of the datagram on success.
Sourcepub fn async_recv_from(
&self,
buf: &mut [u8],
cx: &mut Context<'_>,
) -> Poll<Result<(usize, SockAddr)>>
pub fn async_recv_from( &self, buf: &mut [u8], cx: &mut Context<'_>, ) -> Poll<Result<(usize, SockAddr)>>
Attempt to receive a datagram from the socket without blocking.
Sourcepub fn send_to<'a>(&'a self, buf: &'a [u8], addr: SockAddr) -> SendTo<'a> ⓘ
pub fn send_to<'a>(&'a self, buf: &'a [u8], addr: SockAddr) -> SendTo<'a> ⓘ
Send a datagram via the socket to the given address.
The returned future will resolve with the number of bytes sent on success.
Sourcepub fn async_send_to(
&self,
buf: &[u8],
addr: &SockAddr,
cx: &mut Context<'_>,
) -> Poll<Result<usize>>
pub fn async_send_to( &self, buf: &[u8], addr: &SockAddr, cx: &mut Context<'_>, ) -> Poll<Result<usize>>
Attempt to send a datagram via the socket without blocking.
Sourcepub fn send_to_vectored<'a>(
&'a self,
bufs: &'a [IoSlice<'a>],
addr: SockAddr,
) -> SendToVectored<'a> ⓘ
pub fn send_to_vectored<'a>( &'a self, bufs: &'a [IoSlice<'a>], addr: SockAddr, ) -> SendToVectored<'a> ⓘ
Send a datagram (possibly split over multiple buffers) via the socket.
Sourcepub fn async_send_to_vectored<'a>(
&self,
bufs: &'a [IoSlice<'a>],
addr: &SockAddr,
cx: &mut Context<'_>,
) -> Poll<Result<usize>>
pub fn async_send_to_vectored<'a>( &self, bufs: &'a [IoSlice<'a>], addr: &SockAddr, cx: &mut Context<'_>, ) -> Poll<Result<usize>>
Attempt to send a datagram (possibly split over multiple buffers) via the socket without blocking.
Sourcepub fn set_broadcast(&self, broadcast: bool) -> Result<()>
pub fn set_broadcast(&self, broadcast: bool) -> Result<()>
Sets the value of the SO_BROADCAST
option for this socket.
When enabled, this socket is allowed to send packets to a broadcast address.
Sourcepub fn broadcast(&self) -> Result<bool>
pub fn broadcast(&self) -> Result<bool>
Gets the value of the SO_BROADCAST
option for this socket.
Sourcepub fn bind_device(&self, interface: Option<&[u8]>) -> Result<()>
pub fn bind_device(&self, interface: Option<&[u8]>) -> Result<()>
Sets the SO_BINDTODEVICE
socket option.
If a socket is bound to an interface, only packets received from that particular interface are processed by the socket. Note that this only works for some socket types, particularly AF_INET sockets.
The binding will be removed if interface
is None
or an empty byte slice.
Methods from Deref<Target = EventedFd<Socket>>§
Sourcepub fn poll_readable(&self, cx: &mut Context<'_>) -> Poll<Result<(), Status>>
pub fn poll_readable(&self, cx: &mut Context<'_>) -> Poll<Result<(), Status>>
Tests to see if this resource is ready to be read from. If it is not, it arranges for the current task to receive a notification when a “readable” signal arrives.
Sourcepub fn poll_writable(&self, cx: &mut Context<'_>) -> Poll<Result<(), Status>>
pub fn poll_writable(&self, cx: &mut Context<'_>) -> Poll<Result<(), Status>>
Tests to see if this resource is ready to be written to. If it is not, it arranges for the current task to receive a notification when a “writable” signal arrives.
pub fn as_ref(&self) -> &T
Sourcepub fn need_read(&self, cx: &mut Context<'_>)
pub fn need_read(&self, cx: &mut Context<'_>)
Arranges for the current task to receive a notification when a “readable” signal arrives.
Sourcepub fn need_write(&self, cx: &mut Context<'_>)
pub fn need_write(&self, cx: &mut Context<'_>)
Arranges for the current task to receive a notification when a “writable” signal arrives.