pub struct UdpSocket<'a> { /* private fields */ }Expand description
An UDP socket.
Implementations§
Source§impl<'a> UdpSocket<'a>
impl<'a> UdpSocket<'a>
Sourcepub fn new<D: Driver>(
stack: &'a Stack<D>,
rx_meta: &'a mut [PacketMetadata],
rx_buffer: &'a mut [u8],
tx_meta: &'a mut [PacketMetadata],
tx_buffer: &'a mut [u8],
) -> Self
pub fn new<D: Driver>( stack: &'a Stack<D>, rx_meta: &'a mut [PacketMetadata], rx_buffer: &'a mut [u8], tx_meta: &'a mut [PacketMetadata], tx_buffer: &'a mut [u8], ) -> Self
Create a new UDP socket using the provided stack and buffers.
Sourcepub fn bind<T>(&mut self, endpoint: T) -> Result<(), BindError>where
T: Into<IpListenEndpoint>,
pub fn bind<T>(&mut self, endpoint: T) -> Result<(), BindError>where
T: Into<IpListenEndpoint>,
Bind the socket to a local endpoint.
Sourcepub async fn recv_from(
&self,
buf: &mut [u8],
) -> Result<(usize, IpEndpoint), Error>
pub async fn recv_from( &self, buf: &mut [u8], ) -> Result<(usize, IpEndpoint), Error>
Receive a datagram.
This method will wait until a datagram is received.
Returns the number of bytes received and the remote endpoint.
Sourcepub fn poll_recv_from(
&self,
buf: &mut [u8],
cx: &mut Context<'_>,
) -> Poll<Result<(usize, IpEndpoint), Error>>
pub fn poll_recv_from( &self, buf: &mut [u8], cx: &mut Context<'_>, ) -> Poll<Result<(usize, IpEndpoint), Error>>
Receive a datagram.
When no datagram is available, this method will return Poll::Pending and
register the current task to be notified when a datagram is received.
When a datagram is received, this method will return Poll::Ready with the
number of bytes received and the remote endpoint.
Sourcepub async fn send_to<T>(
&self,
buf: &[u8],
remote_endpoint: T,
) -> Result<(), Error>where
T: Into<IpEndpoint>,
pub async fn send_to<T>(
&self,
buf: &[u8],
remote_endpoint: T,
) -> Result<(), Error>where
T: Into<IpEndpoint>,
Send a datagram to the specified remote endpoint.
This method will wait until the datagram has been sent.
When the remote endpoint is not reachable, this method will return Err(Error::NoRoute)
Sourcepub fn poll_send_to<T>(
&self,
buf: &[u8],
remote_endpoint: T,
cx: &mut Context<'_>,
) -> Poll<Result<(), Error>>where
T: Into<IpEndpoint>,
pub fn poll_send_to<T>(
&self,
buf: &[u8],
remote_endpoint: T,
cx: &mut Context<'_>,
) -> Poll<Result<(), Error>>where
T: Into<IpEndpoint>,
Send a datagram to the specified remote endpoint.
When the datagram has been sent, this method will return Poll::Ready(Ok()).
When the socket’s send buffer is full, this method will return Poll::Pending
and register the current task to be notified when the buffer has space available.
When the remote endpoint is not reachable, this method will return Poll::Ready(Err(Error::NoRoute)).
Sourcepub fn endpoint(&self) -> IpListenEndpoint
pub fn endpoint(&self) -> IpListenEndpoint
Returns the local endpoint of the socket.
Sourcepub fn may_send(&self) -> bool
pub fn may_send(&self) -> bool
Returns whether the socket is ready to send data, i.e. it has enough buffer space to hold a packet.
Sourcepub fn may_recv(&self) -> bool
pub fn may_recv(&self) -> bool
Returns whether the socket is ready to receive data, i.e. it has received a packet that’s now in the buffer.
Sourcepub fn packet_recv_capacity(&self) -> usize
pub fn packet_recv_capacity(&self) -> usize
Return the maximum number packets the socket can receive.
Sourcepub fn packet_send_capacity(&self) -> usize
pub fn packet_send_capacity(&self) -> usize
Return the maximum number packets the socket can receive.
Sourcepub fn payload_recv_capacity(&self) -> usize
pub fn payload_recv_capacity(&self) -> usize
Return the maximum number of bytes inside the recv buffer.
Sourcepub fn payload_send_capacity(&self) -> usize
pub fn payload_send_capacity(&self) -> usize
Return the maximum number of bytes inside the transmit buffer.