#io #async-io #tokio #client-server #helper

async-io-helper

boxed async io for client/server

1 个不稳定版本

0.1.0 2021年3月21日

#2044 in 开发工具

MIT 许可证

8KB
134 代码行

Async IO Helper

tokio 客户端/服务器boxed异步IO。

用法

服务器

let listener = TcpListener::bind(addr).await.unwrap();
tokio::spawn(async move {
    let (stream, _) = listener.accept().await.unwrap();
    let io = ServerIo::new(stream);
    info!("server: accepted: {:?}", io.remote_addr());
    let (mut reader, mut writer) = split(io);
    let mut buf = [0; 12];
    reader.read_exact(&mut buf).await.unwrap();
    info!("server: got data: {:?}", buf);
    writer.write_all(&buf).await.unwrap();
    info!("server: flush the data out");
});

客户端

let mut stream = TcpStream::connect(addr).await.unwrap();
info!("client: conn established");

stream.write_all(msg).await.unwrap();

info!("client: send data");

let (mut reader, _writer) = split(stream);

reader.read_exact(buf).await.unwrap();

info!("client: read echoed data");

许可证

async-io-helper 根据 MIT 许可证分发。

有关详细信息,请参阅 LICENSE

版权所有 2021 Tyr Chen

依赖项

~2–14MB
~112K SLoC