Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Крейт 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?;
}
}

Модули

МодульОписание
unixUnix-доменные сокеты

Структуры

СтруктураОписание
AddrParseErrorОшибка, которая может быть возвращена при разборе IP-адреса или адреса сокета
IncomingПоток входящих TCP-подключений
Ipv4AddrIPv4-адрес
Ipv6AddrIPv6-адрес
SocketAddrV4Адрес IPv4-сокета
SocketAddrV6Адрес IPv6-сокета
TcpListenerTCP-сервер, прослушивающий подключения
TcpStreamTCP-подключение
UdpSocketUDP-сокет

Перечисления

ПеречислениеОписание
IpAddrIP-адрес, либо IPv4, либо IPv6
ShutdownВозможные значения, которые могут быть переданы в метод TcpStream::shutdown
SocketAddrИнтернет-адрес сокета, либо IPv4, либо IPv6

Трейты

ТрейтОписание
AsyncToSocketAddrsПреобразует или разрешает адреса в значения SocketAddr

Функции

ФункцияОписание
resolveПреобразует или разрешает адреса в значения SocketAddr