[PD] rendezvous/zeroconf and pd
hans at eds.org
Thu Mar 11 00:55:39 CET 2004
(I CC'ed the list)
I am first and foremost interested in mDNS
(http://www.multicastdns.org/ ) and dns-sd (http://www.dns-sd.org/ )
since I want to be able to advertise and find advertised services
easily. It makes perfect sense to incorporate the service
advertisements in [netserver] since its providing and managing the
network port, but I am not sure yet how to handle the discovery aspect.
A separate object might make sense for the discovery aspect though.
Here's one idea: the [mdnsclient] object keeps track of all service
advertisements. When you want to use one, you would send [mdnsclient]
a message like [service 1( and it would output the IP address and port
to connect to. That's one idea.
Another would be to have [netclient] keep track of all the services,
then to connect, you send [netclient] a message like [connect mdns 5(
and it would connect to service #5 in the mDNS list. But there needs
to be a way to process this list in order to be able to pick which
services you want to connect to. For example, you would probably want
to filter the service announcements to only display the service types
that you are interested in connecting to. For example, in a Pd patch,
you are unlikely to want to connect to an ssh server.
So this is why I think that this part should be a separate object.
Since the service announcements will need to be processed in order to
choose which one you want to connect to, it would be nice to have it as
flexible as possible. But there might be a better way that what I have
come up with.
As for cross-platform APIs, Howl
(http://www.porchdogsoft.com/products/howl/ ) is meant to be a
cross-platform zeroconf API. They say it works on Win2k/XP, GNU/Linux,
FreeBSD, and MacOS X, but I haven't tried it yet. Its got its own
license, which seems to be BSD-like, but I am not a license expert. It
allows both binary and source redistribution with and without
modification, so it looks good.
Apple released their Rendezvous code under their AFPL 1.2, which is
open source, but only usable for non-commercial work. Their code runs
on MacOS 9, MacOS X, Windows, and Posix, but I am pretty sure that they
just give you command line utils, no API.
More information about the Pd-list