delegate = Object.new def delegate.netServiceBrowserWillSearch(browser) puts "search commencing!" end def delegate.netServiceBrowser(browser, didFindService:service, moreComing:more) # this never calls regardless of the services on the network. puts "Found service #{service.name}." end def delegate.netServiceBrowser(browser, didFindDomain:domain, moreComing:more) puts "Found domain #{domain.inspect}." end def delegate.netServiceBrowser(browser, didRemoveService:service, moreComing:more) puts "lost service #{service.name}" end def delegate.netServiceBrowser(browser, didNotSearch:errorInfo) puts "search not successful: #{errorInfo}" end browsers = [] ["growl","ssh", "raop", "http", "git", "daap", "ipp"].each{|svc| browser = NSNetServiceBrowser.new browser.delegate = delegate browser.searchForServicesOfType("_#{svc}._tcp.", inDomain:"") browsers << browser puts "searching for #{svc}" }