class Discovery::Browser
Attributes
response[R]
services[R]
Public Class Methods
new()
click to toggle source
# File lib/simple_discovery/browser.rb, line 12 def initialize @services = [] listen end
Private Instance Methods
broadcast(target = '<broadcast>')
click to toggle source
# File lib/simple_discovery/browser.rb, line 19 def broadcast(target = '<broadcast>') body = {:port => PORT + 1, :content => nil} s = UDPSocket.new s.setsockopt(Socket::SOL_SOCKET, Socket::SO_BROADCAST, true) s.send(Marshal.dump(body), 0, target, PORT) s.close end
listen(time_out = 3)
click to toggle source
# File lib/simple_discovery/browser.rb, line 28 def listen(time_out = 3) s = UDPSocket.new s.bind('0.0.0.0', PORT + 1) begin broadcast body, sender = timeout(time_out) { s.recvfrom(1024) } server_ip = sender[3] data = Marshal.load(body) @response = data @services = data[:services] rescue Timeout::Error retry end s.close end