Class: Makit::Port

Inherits:
Object
  • Object
show all
Defined in:
lib/makit/port.rb

Overview

This class provide methods for working with ports

Class Method Summary collapse

Class Method Details

.get_available_port(start_port = 1024, end_port = 65_535) ⇒ Object



17
18
19
20
21
22
# File 'lib/makit/port.rb', line 17

def self.get_available_port(start_port = 1024, end_port = 65_535)
  (start_port..end_port).each do |port|
    return port if is_port_available?(port)
  end
  nil # No available port found in the range

end

.get_random_available_portObject



28
29
30
# File 'lib/makit/port.rb', line 28

def self.get_random_available_port
  get_available_port(get_random_port)
end

.get_random_portObject



24
25
26
# File 'lib/makit/port.rb', line 24

def self.get_random_port
  rand(1024..65_535)
end

.is_port_available?(port) ⇒ Boolean

Returns:

  • (Boolean)


8
9
10
11
12
13
14
15
# File 'lib/makit/port.rb', line 8

def self.is_port_available?(port)
  socket = Socket.new(:INET, :STREAM)
  socket.bind(Socket.sockaddr_in(port, ""))
  socket.close
  true # Port is available for use

rescue Errno::EADDRINUSE, Errno::EACCES
  false # Port is not available for use

end