Module server

Expand description

TCP server module for Rama.

The TCP server is used to create a TcpListener and accept incoming connections.

§Example

use rama_tcp::{TcpStream, server::TcpListener};
use rama_core::service::service_fn;
use tokio::io::AsyncWriteExt;

const SRC: &str = include_str!("../../../examples/tcp_listener_hello.rs");

#[tokio::main]
async fn main() {
    TcpListener::bind("127.0.0.1:9000")
        .await
        .expect("bind TCP Listener")
        .serve(service_fn(async |mut stream: TcpStream| {
            let resp = [
                "HTTP/1.1 200 OK",
                "Content-Type: text/plain",
                format!("Content-Length: {}", SRC.len()).as_str(),
                "",
                SRC,
                "",
            ]
            .join("\r\n");

            stream
                .write_all(resp.as_bytes())
                .await
                .expect("write to stream");

            Ok::<_, std::convert::Infallible>(())
        }))
        .await;
}

Structs§

TcpListener
A TCP socket server, listening for incoming connections once served using one of the serve methods such as TcpListener::serve.
TcpListenerBuilder
Builder for TcpListener.