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
每月下载量 84
用于 shoop
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);
可以传递给 getsockopt
或 setsockopt
的各种选项
这些类型是以这种方式编写的,以便在将它们与 getsockopt
或 setsockopt
一起使用时,它们将需要正确的数据类型。
示例
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