trust_dns_proto::udp

Trait UdpSocket

Source
pub trait UdpSocket
where Self: Send + Sync + Sized + Unpin,
{ type Time: Time; // Required methods fn connect<'async_trait>( addr: SocketAddr, ) -> Pin<Box<dyn Future<Output = Result<Self>> + Send + 'async_trait>> where Self: 'async_trait; fn connect_with_bind<'async_trait>( addr: SocketAddr, bind_addr: SocketAddr, ) -> Pin<Box<dyn Future<Output = Result<Self>> + Send + 'async_trait>> where Self: 'async_trait; fn bind<'async_trait>( addr: SocketAddr, ) -> Pin<Box<dyn Future<Output = Result<Self>> + Send + 'async_trait>> where Self: 'async_trait; fn poll_recv_from( &self, cx: &mut Context<'_>, buf: &mut [u8], ) -> Poll<Result<(usize, SocketAddr)>>; fn poll_send_to( &self, cx: &mut Context<'_>, buf: &[u8], target: SocketAddr, ) -> Poll<Result<usize>>; // Provided methods fn recv_from<'life0, 'life1, 'async_trait>( &'life0 self, buf: &'life1 mut [u8], ) -> Pin<Box<dyn Future<Output = Result<(usize, SocketAddr)>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } fn send_to<'life0, 'life1, 'async_trait>( &'life0 self, buf: &'life1 [u8], target: SocketAddr, ) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } }
Expand description

Trait for UdpSocket

Required Associated Types§

Source

type Time: Time

Time implementation used for this type

Required Methods§

Source

fn connect<'async_trait>( addr: SocketAddr, ) -> Pin<Box<dyn Future<Output = Result<Self>> + Send + 'async_trait>>
where Self: 'async_trait,

setups up a “client” udp connection that will only receive packets from the associated address

Source

fn connect_with_bind<'async_trait>( addr: SocketAddr, bind_addr: SocketAddr, ) -> Pin<Box<dyn Future<Output = Result<Self>> + Send + 'async_trait>>
where Self: 'async_trait,

same as connect, but binds to the specified local address for seding address

Source

fn bind<'async_trait>( addr: SocketAddr, ) -> Pin<Box<dyn Future<Output = Result<Self>> + Send + 'async_trait>>
where Self: 'async_trait,

a “server” UDP socket, that bind to the local listening address, and unbound remote address (can receive from anything)

Source

fn poll_recv_from( &self, cx: &mut Context<'_>, buf: &mut [u8], ) -> Poll<Result<(usize, SocketAddr)>>

Poll once Receive data from the socket and returns the number of bytes read and the address from where the data came on success.

Source

fn poll_send_to( &self, cx: &mut Context<'_>, buf: &[u8], target: SocketAddr, ) -> Poll<Result<usize>>

Poll once to send data to the given address.

Provided Methods§

Source

fn recv_from<'life0, 'life1, 'async_trait>( &'life0 self, buf: &'life1 mut [u8], ) -> Pin<Box<dyn Future<Output = Result<(usize, SocketAddr)>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Receive data from the socket and returns the number of bytes read and the address from where the data came on success.

Source

fn send_to<'life0, 'life1, 'async_trait>( &'life0 self, buf: &'life1 [u8], target: SocketAddr, ) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Send data to the given address.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§