Crate async_net

Source
Expand description

Async networking primitives for TCP/UDP/Unix communication.

This crate is an async version of std::net and [std::os::unix::net].

§Implementation

This crate uses async-io for async I/O and blocking for DNS lookups.

§Examples

A simple UDP server that echoes messages back to the sender:

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?;
}

Re-exports§

pub use std::net::IpAddr;
pub use std::net::Ipv4Addr;
pub use std::net::Ipv6Addr;
pub use std::net::Shutdown;
pub use std::net::SocketAddr;
pub use std::net::SocketAddrV4;
pub use std::net::SocketAddrV6;
pub use std::net::AddrParseError;

Structs§

Incoming
A stream of incoming TCP connections.
TcpListener
A TCP server, listening for connections.
TcpStream
A TCP connection.
UdpSocket
A UDP socket.

Traits§

AsyncToSocketAddrs
Converts or resolves addresses to SocketAddr values.

Functions§

resolve
Converts or resolves addresses to SocketAddr values.