Function tcp_handler::compress::recv

source ·
pub async fn recv<R: AsyncReadExt + Unpin + Send>(
    stream: &mut R
) -> Result<BytesMut, PacketError>
Available on crate feature compression only.
Expand description

Recv message in compress tcp-handler protocol.

You may use some crate to read and write data, such as serde, postcard and variable-len-reader.

§Arguments

  • stream - The tcp stream or ReadHalf.

§Example

use anyhow::Result;
use bytes::Buf;
use tcp_handler::compress::{recv, server_init, server_start};
use tokio::net::TcpListener;
use variable_len_reader::VariableReader;

#[tokio::main]
async fn main() -> Result<()> {
    let server = TcpListener::bind("localhost:25564").await?;
    let (mut server, _) = server.accept().await?;
    let s_init = server_init(&mut server, &"test", |v| v == "0").await;
    server_start(&mut server, s_init).await?;

    let mut reader = recv(&mut server).await?.reader();
    let _message = reader.read_string()?;
    Ok(())
}