[][src]Module futures_net::tcp

Async TCP.

This module contains the TCP networking types, similar to those found in std::net, but suitable for async programming via futures and async/await.

Example

use futures_net::{TcpListener, TcpStream};
use futures::prelude::*;

async fn say_hello(mut stream: TcpStream) {
    stream.write_all(b"Shall I hear more, or shall I speak at this?!").await;
}

async fn listen() -> Result<(), Box<dyn std::error::Error + 'static>> {
    let socket_addr = "127.0.0.1:80".parse()?;
    let mut listener = TcpListener::bind(&socket_addr)?;
    let mut incoming = listener.incoming();

    // accept connections and process them serially
    while let Some(stream) = incoming.next().await {
        say_hello(stream?).await;
    }
    Ok(())
}

Structs

ConnectFuture

The future returned by TcpStream::connect, which will resolve to a TcpStream when the stream is connected.

Incoming

Stream returned by the TcpListener::incoming function representing the stream of sockets received from a listener.

TcpListener

A TCP socket server, listening for connections.

TcpStream

A TCP stream between a local and a remote socket.