You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

13 lines
312B

  1. use std::net::TcpListener;
  2. pub fn get_available_port(avoid: u16) -> Option<u16> {
  3. (1000..9000).find(|port| *port != avoid && port_is_available(*port))
  4. }
  5. pub fn port_is_available(port: u16) -> bool {
  6. match TcpListener::bind(("127.0.0.1", port)) {
  7. Ok(_) => true,
  8. Err(_) => false,
  9. }
  10. }