15 lines
322 B
Rust
15 lines
322 B
Rust
use std::net::TcpListener;
|
|
|
|
|
|
pub fn get_available_port(avoid: u16) -> Option<u16> {
|
|
(1000..9000)
|
|
.find(|port| *port != avoid && port_is_available(*port))
|
|
}
|
|
|
|
pub fn port_is_available(port: u16) -> bool {
|
|
match TcpListener::bind(("127.0.0.1", port)) {
|
|
Ok(_) => true,
|
|
Err(_) => false,
|
|
}
|
|
}
|