Module: Schatz::Schemes::DirectTcp

Defined in:
lib/schatz/schemes/direct_tcp.rb

Class Method Summary collapse

Class Method Details

.direct_test(host, port, timeout = 0.1) ⇒ Object



6
7
8
9
10
11
12
13
14
# File 'lib/schatz/schemes/direct_tcp.rb', line 6

def self.direct_test(host, port, timeout =0.1)
  addr = Socket.pack_sockaddr_in(port, host)
  s = Socket.new(:AF_INET, :SOCK_STREAM, 0)
  begin
    s.connect_nonblock(addr)
  rescue Errno::EINPROGRESS
    IO.select(nil, [s], nil, timeout) ? true : (raise Timeout::Error)
  end
end