This trait is an extension trait for TcpStack and UdpStack for dns
resolutions. It does not handle every DNS record type, but is meant as an
embedded alternative to ToSocketAddrs, and is as such meant to resolve
an ip address from a hostname, or a hostname from an ip address. This means
that it only deals in host address records A (IPv4) and AAAA (IPv6).
This trait is implemented by TCP/IP stacks. You could, for example, have an implementation
which knows how to send AT commands to an ESP8266 WiFi module. You could have another implementation
which knows how to driver the Rust Standard Library’s std::net module. Given this trait, you can
write a portable HTTP client which can work with either implementation.
This trait is implemented by TCP/IP stacks that expose TCP server functionality. TCP servers
may listen for connection requests to establish multiple unique TCP connections with various
clients.
This trait is implemented by UDP/IP stacks. You could, for example, have
an implementation which knows how to send AT commands to an ESP8266 WiFi
module. You could have another implementation which knows how to driver the
Rust Standard Library’s std::net module. Given this trait, you can how
write a portable CoAP client which can work with either implementation.