#udp #socket #udt4

udt

绑定到 udt,一种高性能数据传输协议(基于 UDP)

5 个版本

使用旧的 Rust 2015

0.2.0 2016年8月17日
0.1.4 2015年10月11日
0.1.2 2015年10月7日
0.1.1 2015年10月5日
0.1.0 2015年10月4日

#udt 中排名 3

Download history 25/week @ 2023-10-19 30/week @ 2023-10-26 24/week @ 2023-11-02 28/week @ 2023-11-09 26/week @ 2023-11-16 25/week @ 2023-11-23 23/week @ 2023-11-30 18/week @ 2023-12-07 24/week @ 2023-12-14 26/week @ 2023-12-21 10/week @ 2023-12-28 14/week @ 2024-01-04 24/week @ 2024-01-11 27/week @ 2024-01-18 16/week @ 2024-01-25 16/week @ 2024-02-01

每月下载量 84
用于 shoop

BSD-3-Clause

45KB
575 行代码(不含注释)

udt-rs

Rust 的 UDT 绑定

UDT 是什么?

请参阅 http://udt.sourceforge.net/

文档和示例

正在进行中,请参阅 文档

许可证

绑定程序以 BSD 许可证分发。

UDT 以 BSD 许可证分发(版权所有于伊利诺伊大学董事会)。请参阅 此处

包装器以 BSD 许可证分发(版权所有于 Brave New Software)。请参阅 此处


lib.rs:

关于这些文档的说明

这些文档主要直接复制自 UDT 文档。如果您看到的是 C++ 函数名而不是 Rust 函数名,那就是原因。

UDT

绑定到 UDT4 高性能数据传输库

UDT 紧密遵循 BSD 套接字 API,但其中一些函数的语义有所不同。

UDT 是一种高性能数据传输协议 - 基于 UDP 的数据传输协议。它被设计用于高速广域网上的数据密集型应用,以克服 TCP 的效率和公平性问题。正如其名称所示,UDT 是基于 UDP 构建的,并提供可靠的数据流和消息服务。

示例

创建一个可以发送和接收消息的数据报服务器

    use std::str::FromStr;
    use std::net::{SocketAddr, SocketAddrV4};
    use udt::*;

    let localhost = std::net::Ipv4Addr::from_str("127.0.0.1").unwrap();

    let sock = UdtSocket::new(SocketFamily::AFInet, SocketType::Stream).unwrap();
    sock.bind(SocketAddr::V4(SocketAddrV4::new(localhost, 0))).unwrap();
    let my_addr = sock.getsockname().unwrap();
    println!("Server bound to {:?}", my_addr);
    sock.listen(5).unwrap();
    let (mut new_socket, peer) = sock.accept().unwrap();
    println!("Received new connection from peer {:?}", peer);


可以传递给 getsockoptsetsockopt 的各种选项

这些类型是以这种方式编写的,以便在将它们与 getsockoptsetsockopt 一起使用时,它们将需要正确的数据类型。

示例

use udt::*;

let sock = UdtSocket::new(SocketFamily::AFInet, SocketType::Stream).unwrap();
let recv_buf: i32 = sock.getsockopt(UdtOpts::UDT_RCVBUF).unwrap();
let rendezvous: bool = sock.getsockopt(UdtOpts::UDT_RENDEZVOUS).unwrap();

依赖项

~335KB