[−][src]Module romio::tcp
Async TCP bindings.
This module contains the TCP networking types, similar to those found in
std::net
, but suitable for async programming via futures and
async
/await
.
- To connect to an address via TCP, use
TcpStream::connect
. - To listen for TCP connection, use
TcpListener::bind
and thenTcpListener::incoming
. - Once you have a
TcpStream
, you can use methods fromAsyncRead
,AsyncWrite
, and their extension traits (AsyncReadExt
,AsyncWriteExt
) to send and receive data.
Example
use romio::tcp::{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 |
Incoming | Stream returned by the |
TcpListener | A TCP socket server, listening for connections. |
TcpStream | A TCP stream between a local and a remote socket. |