Крейт net
Источник: Документация async-net
Асинхронные примитивы для сетевого взаимодействия через TCP/UDP/Unix.
Этот крейт представляет собой асинхронную версию std::net и std::os::unix::net.
Реализация
Этот крейт использует async-io для асинхронного I/O и blocking для DNS-запросов.
Примеры
Простой UDP-сервер, который возвращает сообщения обратно отправителю:
#![allow(unused)] fn main() { use async_net::UdpSocket; let socket = UdpSocket::bind("127.0.0.1:8080").await?; let mut buf = vec![0u8; 1024]; loop { let (n, addr) = socket.recv_from(&mut buf).await?; socket.send_to(&buf[..n], &addr).await?; } }
Модули
| Модуль | Описание |
|---|---|
unix | Unix-доменные сокеты |
Структуры
| Структура | Описание |
|---|---|
AddrParseError | Ошибка, которая может быть возвращена при разборе IP-адреса или адреса сокета |
Incoming | Поток входящих TCP-подключений |
Ipv4Addr | IPv4-адрес |
Ipv6Addr | IPv6-адрес |
SocketAddrV4 | Адрес IPv4-сокета |
SocketAddrV6 | Адрес IPv6-сокета |
TcpListener | TCP-сервер, прослушивающий подключения |
TcpStream | TCP-подключение |
UdpSocket | UDP-сокет |
Перечисления
| Перечисление | Описание |
|---|---|
IpAddr | IP-адрес, либо IPv4, либо IPv6 |
Shutdown | Возможные значения, которые могут быть переданы в метод TcpStream::shutdown |
SocketAddr | Интернет-адрес сокета, либо IPv4, либо IPv6 |
Трейты
| Трейт | Описание |
|---|---|
AsyncToSocketAddrs | Преобразует или разрешает адреса в значения SocketAddr |
Функции
| Функция | Описание |
|---|---|
resolve | Преобразует или разрешает адреса в значения SocketAddr |