class Makit::Port
This class provide methods for working with ports
def self.get_available_port(start_port = 1024, end_port = 65535)
def self.get_available_port(start_port = 1024, end_port = 65535) (start_port..end_port).each do |port| return port if is_port_available?(port) end nil # No available port found in the range end
def self.get_random_available_port
def self.get_random_available_port get_available_port(get_random_port) end
def self.get_random_port
def self.get_random_port rand(1024..65535) end
def self.is_port_available?(port)
def self.is_port_available?(port) begin socket = Socket.new(:INET, :STREAM) socket.bind(Socket.sockaddr_in(port, '')) socket.close return true # Port is available for use rescue Errno::EADDRINUSE, Errno::EACCES return false # Port is not available for use end end