
Untitled
By: a guest on Jan 28th, 2012 | syntax:
None | size: 1.01 KB | hits: 25 | expires: Never
def validate_port(server,port)
ret_value = false
begin
addr = Socket.getaddrinfo(server,nil)
socket = Socket.new(Socket.const_get(addr[0][0]), Socket::SOCK_STREAM, 0)
secs = Integer(1)
usecs = Integer(0)
optval = [secs, usecs].pack("l_2")
puts "optval: #{optval.inspect}"
rc = socket.setsockopt(Socket::SOL_SOCKET, Socket::SO_RCVTIMEO, optval)
puts "rc: #{rc}"
rc =socket.setsockopt(Socket::SOL_SOCKET, Socket::SO_SNDTIMEO, optval)
puts "rc: #{rc}"
puts ">>> TCPSocket.connect"
socket.connect(Socket.pack_sockaddr_in(port, addr[0][3]))
puts "<<< TCPSocket.connect"
ret_value = true
socket.close
rescue SocketError
puts "SocketError (no host): #{$!.inspect}"
rescue Errno::ECONNREFUSED
puts "Connection refused (caught)"
rescue Errno::ETIMEDOUT
puts "Host not online (caught)"
rescue
puts "EXCEPTION: #{$!.inspect} class=#{$!.class}"
end
return ret_value
end