Function tcp_handler::compress_encrypt::send
source · pub async fn send<W: AsyncWriteExt + Unpin + Send, B: Buf>(
stream: &mut W,
message: &mut B,
cipher: AesCipher,
level: Compression
) -> Result<AesCipher, PacketError>
Available on crate features
compression
and encrypt
only.Expand description
Send message in compress_encrypt 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 orWriteHalf
.message
- The message to send.level
- The level of compression.
§Example
use anyhow::Result;
use bytes::{BufMut, BytesMut};
use flate2::Compression;
use tcp_handler::compress_encrypt::{client_init, client_start, send};
use tokio::net::TcpStream;
use variable_len_reader::VariableWriter;
#[tokio::main]
async fn main() -> Result<()> {
let mut client = TcpStream::connect("localhost:25564").await?;
let c_init = client_init(&mut client, &"test", &"0").await;
let mut cipher = client_start(&mut client, c_init).await?;
let mut writer = BytesMut::new().writer();
writer.write_string("hello server.")?;
cipher = send(&mut client, &mut writer.into_inner(), cipher, Compression::default()).await?;
Ok(())
}