udp stream
1.0.0
udp-stream
是一个 Rust 库,它提供了一个简单的 API,用于处理通过用户数据报协议 (UDP) 的流数据,类似于 TcpStream。它抽象了使用 UDP 的复杂性,例如处理数据包分段、重组和流量控制,使开发人员可以轻松地通过 UDP 套接字发送和接收连续的数据流,尤其是在使用 DTLS 协议时。
基于流: udp-stream
提供了一个抽象层,用于将 UDP 数据包作为连续数据流进行处理,使用与tokio
库中的TcpStream
类似的函数签名。这使得熟悉tokio
的开发人员能够利用他们现有的知识以类似的方式使用 UDP。
轻量级: udp-stream
占用空间小,仅依赖于tokio
和bytes
库,使其轻量级且易于集成到您现有的项目中。
要在 Rust 项目中使用udp-stream
,只需将其作为依赖项添加到Cargo.toml
文件中:
托姆尔
udp-stream = "0.0.12"
然后,您可以在 Rust 代码中导入并使用该库:
锈
use std::{net::SocketAddr, str::FromStr};
use tokio::io::{AsyncReadExt, AsyncWriteExt};
use udp_stream::UdpStream;
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
let mut stream = UdpStream::connect(SocketAddr::from_str("127.0.0.1:8080")?).await?;
println!("Ready to Connected to {}", &stream.peer_addr()?);
let mut buffer = String::new();
loop {
std::io::stdin().read_line(&mut buffer)?;
stream.write_all(buffer.as_bytes()).await?;
let mut buf = vec![0u8; 1024];
let n = stream.read(&mut buf).await?;
print!("-> {}", String::from_utf8_lossy(&buf[..n]));
buffer.clear();
}
}
有关如何使用udp-stream
更多详细信息,包括配置选项、用于 DTLS 以及高级用法,请参阅示例。
欢迎对udp-stream
做出贡献!如果您想为该库做出贡献,请遵循标准 Rust 社区指南进行贡献,包括提出问题、提交拉取请求和提供反馈。
udp-stream
根据 MIT 许可证获得许可,允许免费使用、修改和分发,但须遵守许可证中概述的条款和条件。
我们希望udp-stream
对您的项目有用!如果您有任何疑问或需要进一步帮助,请随时联系我们或在存储库中提出问题。