It's a simple Ruby gem to get a random TCP port.
First, install it:
$ gem install random-port
Then, use it like this, to reserve a random TCP port:
require 'random-port' port = RandomPort::Pool.new.acquire
The Pool
guarantees that the port won't be used again. You can put the port back to the pool after usage:
RandomPort::Pool.new.acquire do |port| # Use the TCP port. It will be returned back # to the pool afterwards. end
You can do it without the block:
pool = RandomPort::Pool.new port = pool.acquire pool.release(port)
You can also use a pre-defined Pool::SINGLETON
singleton:
RandomPort::Pool::SINGLETON.acquire do |port| # Use it here... end
The pool is thread-safe by default. You can configure it to be not-thread-safe, using optional sync
argument of the constructor.
How to contribute¶ ↑
Read these guidelines. Make sure you build is green before you contribute your pull request. You will need to have Ruby 2.3+ and Bundler installed. Then:
$ bundle update $ bundle exec rake
If it's clean and you don't see any error messages, submit your pull request.