6个版本
0.1.6 | 2022年5月12日 |
---|---|
0.1.5 | 2022年5月11日 |
0.1.3 | 2022年4月30日 |
在网络编程类别中排名1007
每月下载量1,805次
在11个crate中使用了(直接使用6个)
18KB
320 行
语言:🇺🇸 英语 | 🇨🇳 简体中文
port-selector
概述
port-selector是一个提供端口可用性检查、基于条件的端口过滤和占用指定端口的Rust库。
安装
-
获取最新版本 -> https://crates.io/crates/port-selector
-
添加依赖
[dependencies]
port-selector = "0.1.5"
- use
use port_selector::{is_free, Port};
fn main() {
let check_port: Port = 3000;
println!("is_free({}) = {}", check_port, is_free(check_port));
}
商品
fn -> is_free_tcp · is_free_udp · is_free · random_free_tcp_port · random_free_udp_port · random_free_port · select_from_given_port · select_free_port · take_up_tcp_port · take_up_udp_port · take_up_port · random_take_up_tcp_port · random_take_up_udp_port · random_take_up_port
文档
端口
u16
类型别名
pub type Port = u16;
选择器
select_free_port
需要一个结构体传入
pub struct Selector {
// Check whether the port is available on TCP.
// The default value is true.
pub check_tcp: bool,
// Check whether the port is available on UDP.
// The default value is true.
pub check_udp: bool,
// Set the range of generated ports, default (0, 65525)
pub port_range: (u16, u16),
// Maximum number of random times. Default value: 100
// If no available port number is found within the maximum random number of loops, None is returned
pub max_random_times: u16,
}
is_free_tcp
检查端口在TCP上是否未被使用
pub fn is_free_udp(port: Port) -> bool
is_free_udp
检查端口在UDP上是否未被使用
pub fn is_free_udp(port: Port) -> bool
is_free
检查端口在TCP和UDP上是否未被使用
pub fn is_free(port: Port) -> bool
random_free_tcp_port
系统随机分配可用的TCP端口
pub fn random_free_tcp_port() -> Option<Port>
random_free_udp_port
系统随机分配可用的UDP端口
pub fn random_free_udp_port() -> Option<Port>
random_free_port
系统随机分配可用的TCP和UDP端口
pub fn random_free_port() -> Option<Port>
select_from_given_port
从given_port
检查并返回第一个可用的端口号
如果given_port
可用则返回;否则given_port += 1
直到端口可用
pub fn select_from_given_port(given_port: Port) -> Option<Port>
select_free_port
根据Selector
参数约束获取匹配的端口号
pub fn select_free_port(selector: Selector) -> Option<Port>
take_up_tcp_port
在tcp上占用端口
fn take_up_tcp_port(port: Port) -> bool
take_up_udp_port
在udp上占用端口
fn take_up_udp_port(port: Port) -> bool
take_up_port
在tcp和udp上占用端口
fn take_up_port(port: Port) -> bool
random_take_up_tcp_port
系统随机占用tcp端口
fn random_take_up_tcp_port() -> Port
random_take_up_udp_port
系统随机占用udp端口
fn random_take_up_udp_port() -> Port
random_take_up_port
系统随机占用tcp和udp端口
fn random_take_up_port() -> Port
感谢
依赖
~310KB