Platforms to show: All Mac Windows Linux Cross-Platform
/Network/Bonjour/Bonjour Console
Required plugins for this example: MBS Util Plugin, MBS Network Plugin
You find this example project in your Plugins Download as a Xojo project file within the examples folder: /Network/Bonjour/Bonjour Console
This example is the version from Fri, 13th Oct 2016.
Project "Bonjour Console.xojo_binary_project"
Class App Inherits ConsoleApplication
EventHandler Function Run(args() as String) As Integer
print "This application does registering a service, browse and lookup this service."
print "Press control-C to quit."
b=new MyBonjourBrowseMBS
r=new MyBonjourRegisterMBS
l=new MyBonjourLookupMBS
if b.Available then
print "Bonjour is available."
else
print "No Bonjour found!"
Return 1
end if
Register
// wait 2 seconds and give sockets, threads and timers time
for i as integer=0 to 20
DelayMBS 0.1
DoEvents
next
Browse
// give sockets, threads and timers time
do
DelayMBS 0.1
DoEvents
loop
End EventHandler
Protected Sub Browse()
if b.Browse(0,"_echo._tcp","local.") then
print "Browse started successfull."
else
print "Browse failed."
end if
End Sub
Sub Lookup(ServiceName as string, domain as string)
if app.l.Resolve(app.l.kInterfaceIndexAny, ServiceName,"_echo._tcp.", domain) then
print "Lookup started successfull."
else
print "Lookup failed."
end if
End Sub
Protected Sub Register()
if r.Register(0,0,"MyService","_echo._tcp.", "local.", "", 1111, "") then
print "Registering started successfull."
else
print "Registering failed."
end if
End Sub
Property Protected b As MyBonjourBrowseMBS
Property Protected l As MyBonjourLookupMBS
Property Protected r As MyBonjourRegisterMBS
End Class
Class MyBonjourBrowseMBS Inherits DNSServiceBrowseMBS
EventHandler Sub ServiceBrowse(Flags as integer, InterfaceIndex as integer, ErrorCode as integer, ServiceName as string, RegType as string, Domain as string)
print "ServiceBrowse event."
print " Service name: "+ServiceName
print " Interface index: "+str(InterfaceIndex)
print " Registration Type: "+RegType
print " Domain: "+domain
print " Flags: "+str(flags)
app.lookup ServiceName, domain
End EventHandler
End Class
Class MyBonjourLookupMBS Inherits DNSServiceResolveMBS
EventHandler Sub ServiceResolve(flags as integer, InterfaceIndex as integer, ErrorCode as integer, Fullname as string, Hosttarget as string, Port as integer, TxtRecord as string)
print "ServiceLookup event."
print " Error code: "+str(ErrorCode)
print " IP: "+DNSNameToAddressMBS(Hosttarget)
print " Port: "+str(port)
print " Interface index: "+str(InterfaceIndex)
print " Host target: "+Hosttarget
print " Fullname: "+Fullname
End EventHandler
End Class
Class MyBonjourRegisterMBS Inherits DNSServiceRegisterMBS
EventHandler Sub ServiceRegistration(flags as integer, errorcode as integer, Name as string, RegType as string, Domain as string)
print "ServiceRegistration event."
print " Errorcode: "+str(errorcode)
End EventHandler
End Class
End Project
See also:
The items on this page are in the following plugins: MBS Network Plugin.