Crates.io | port-selector |
lib.rs | port-selector |
version | 0.1.6 |
source | src |
created_at | 2022-04-30 03:28:59.03553 |
updated_at | 2022-05-12 03:45:14.148537 |
description | port-selector is a rust library that provides port availability checking, port filtering based on conditions and occupy specified ports. |
homepage | https://github.com/ZingerLittleBee/port-selector-rs |
repository | https://github.com/ZingerLittleBee/port-selector-rs |
max_upload_size | |
id | 577973 |
size | 26,126 |
Language : 🇺🇸 English | 🇨🇳 简体中文
port-selector is a rust library that provides port availability checking, port filtering based on conditions and occupy specified ports.
Get the latest version -> https://crates.io/crates/port-selector
Add the dependent
[dependencies]
port-selector = "0.1.5"
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
type alias
pub type Port = u16;
The select_free_port
requires a structure passed in
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
Check whether the port is not used on TCP
pub fn is_free_udp(port: Port) -> bool
is_free_udp
Check whether the port is not used on UDP
pub fn is_free_udp(port: Port) -> bool
is_free
Check whether the port is not used on TCP and UDP
pub fn is_free(port: Port) -> bool
random_free_tcp_port
The system randomly assigns available TCP ports
pub fn random_free_tcp_port() -> Option<Port>
random_free_udp_port
The system randomly assigns available UDP ports
pub fn random_free_udp_port() -> Option<Port>
random_free_port
The system randomly assigns available TCP and UDP ports
pub fn random_free_port() -> Option<Port>
select_from_given_port
Check from given_port
and return the first available port
Return if given_port
is available; Otherwise given_port += 1
until the port is available
pub fn select_from_given_port(given_port: Port) -> Option<Port>
select_free_port
Gets a matching port based on the Selector
parameter constraint
pub fn select_free_port(selector: Selector) -> Option<Port>
take_up_tcp_port
Occupy port on tcp
fn take_up_tcp_port(port: Port) -> bool
take_up_udp_port
Occupy port on udp
fn take_up_udp_port(port: Port) -> bool
take_up_port
Occupy port on tcp && udp
fn take_up_port(port: Port) -> bool
random_take_up_tcp_port
Randomly occupied port on tcp by the system
fn random_take_up_tcp_port() -> Port
random_take_up_udp_port
Randomly occupied port on udp by the system
fn random_take_up_udp_port() -> Port
random_take_up_port
Randomly occupy tcp && udp ports by the system
fn random_take_up_port() -> Port