1 个不稳定版本
0.1.0 | 2021年3月21日 |
---|
#2044 in 开发工具
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