
I know a bit about mDNS, and I think DNS-SD is just a way to implement service discovery on top of DNS. The lookup part of mDNS should be implemented at the system level. On a posix system w/ mDNS support, the lookup is normally handled transparently via gethostbyname() and therefore requires no special support from ASIO. Two ways I've seen this done are via custom support in the C library and via a plug-in (specifically, a shared library that's specified via /etc/nsswitch.conf). For scalability reasons, it is ideal if the lookup consults a daemon process or service running on the local machine that can both listen for announcements and maintain a cache from which to answer duplicate queries. I think the Windows install of Bonjour has a way of extending the normal DNS lookup mechanism to support mDNS, as well. This is necessary for use of mDNS from Windows XP, as it lacks built-in support. I can't say the same for Windows Vista, however. I'm not familiar with the other side (i.e. announcements), but I wonder whether typical OS security models permit this to be done at the application level (i.e. if the user is not running as root or local Administrator). If that's the case, then your app would have to communicate with a service which supports mDNS announcements for that platform - and I'm pretty sure there's no standard way to do that. You might find more interest, on the asio-users mailing list: http://sourceforge.net/mail/?group_id=122478 Matt