udp-stream
เป็นไลบรารี Rust ที่ให้ API อย่างง่ายสำหรับจัดการข้อมูลการสตรีมผ่าน User Datagram Protocol (UDP) ซึ่งคล้ายกับ TcpStream โดยสรุปความซับซ้อนของการทำงานกับ UDP เช่น การจัดการการกระจายตัวของแพ็กเก็ต การประกอบซ้ำ และการควบคุมโฟลว์ ทำให้นักพัฒนาสามารถส่งและรับสตรีมข้อมูลต่อเนื่องผ่านซ็อกเก็ต UDP ได้อย่างง่ายดาย โดยเฉพาะอย่างยิ่งเมื่อใช้โปรโตคอล DTLS
Stream-based : udp-stream
จัดเตรียมเลเยอร์นามธรรมสำหรับจัดการแพ็กเก็ต UDP ในรูปแบบสตรีมข้อมูลอย่างต่อเนื่อง โดยใช้ลายเซ็นฟังก์ชันที่คล้ายกันกับ TcpStream
ในไลบรารี tokio
สิ่งนี้ช่วยให้นักพัฒนาที่คุ้นเคยกับ tokio
สามารถใช้ประโยชน์จากความรู้ที่มีอยู่เพื่อทำงานกับ UDP ในลักษณะเดียวกัน
น้ำหนักเบา : udp-stream
มีขนาดเล็กและขึ้นอยู่กับไลบรารี tokio
และ bytes
เท่านั้น ทำให้มีน้ำหนักเบาและง่ายต่อการรวมเข้ากับโปรเจ็กต์ที่มีอยู่ของคุณ
หากต้องการใช้ udp-stream
ในโปรเจ็กต์ Rust เพียงเพิ่มเป็นการพึ่งพาในไฟล์ 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
จะมีประโยชน์สำหรับโครงการของคุณ! หากคุณมีคำถามหรือต้องการความช่วยเหลือเพิ่มเติม โปรดอย่าลังเลที่จะติดต่อเราหรือเปิดปัญหาในพื้นที่เก็บข้อมูล