Platforms to show: All Mac Windows Linux Cross-Platform
/Linux/Avahi Browse Webservers
Required plugins for this example: MBS Linux Plugin
You find this example project in your Plugins Download as a Xojo project file within the examples folder: /Linux/Avahi Browse Webservers
This example is the version from Sun, 25th Aug 2012.
Project "Avahi Browse Webservers.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Löschen"
Const kFileQuit = "Beenden"
Const kFileQuitShortcut = ""
EventHandler Sub Open()
if MyClient.available = false then
MsgBox "Please run on Linux with avahi installed."
quit
end if
client = new MyClient
Browser = new MyBrowser(client)
call Browser.Browse(Browser.kInterfaceAny, Browser.kProtocolAny, "_http._tcp")
End EventHandler
Property Browser As MyBrowser
Property Client As MyClient
Property Resolvers() As MyResolver
End Class
Class MainWindow Inherits Window
Control List Inherits Listbox
ControlInstance List Inherits Listbox
End Control
End Class
MenuBar MenuBar1
MenuItem FileMenu = "&Ablage"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Bearbeiten"
MenuItem EditUndo = "&Rückgängig"
MenuItem UntitledMenu1 = "-"
MenuItem EditCut = "&Ausschneiden"
MenuItem EditCopy = "&Kopieren"
MenuItem EditPaste = "&Einfügen"
MenuItem EditClear = "#App.kEditClear"
MenuItem UntitledMenu0 = "-"
MenuItem EditSelectAll = "&Alles auswählen"
End MenuBar
Class MyClient Inherits AvahiClientMBS
EventHandler Sub Failure(error as string, errorcode as integer)
Log "Client Failure: "+error
End EventHandler
EventHandler Sub Running()
log "Running..."
End EventHandler
End Class
Class MyBrowser Inherits AvahiBrowserMBS
EventHandler Sub Failure(error as string, errorcode as integer)
Log "Browser Failure: "+error
End EventHandler
EventHandler Sub ServiceFound(InterfaceIndex as integer, protocol as Integer, name as string, type as string, domain as string, flags as integer)
Log "Found Service "+name+" at domain "+domain
dim r as new MyResolver(Client)
if r.Resolve(InterfaceIndex, protocol, name, type, domain, 0) then
app.Resolvers.Append r
end if
End EventHandler
EventHandler Sub ServiceRemoved(InterfaceIndex as integer, protocol as Integer, name as string, type as string, domain as string, flags as integer)
Log "Lost Service "+name+" of type "+type+" at domain "+domain
// here you could stop resolvers started in the ServiceFound events
End EventHandler
End Class
Class MyResolver Inherits AvahiResolverMBS
EventHandler Sub Failure(error as string, errorcode as integer)
Log "Resolver Failure: "+error
End EventHandler
EventHandler Sub Found(interfaceIndex as integer, Protocol as Integer, name as string, type as string, domain as string, hostname as string, port as integer, address as string, txt as string, flags as integer)
log name + " at "+address+":"+str(port)
End EventHandler
End Class
Module Module1
Sub Log(s as string)
MainWindow.List.AddRow s
MainWindow.List.ScrollPosition = MainWindow.List.ListCount
End Sub
End Module
End Project
See also:
The items on this page are in the following plugins: MBS Linux Plugin.