1- # Zeroconf JmDNS
1+ See [ rosjava_core] ( https://github.com/rosjava/rosjava_core ) readme.
2+
3+ # Zeroconf JmDNS #
24
35This repository packages android friendly sources from the [ jmdns] ( http://jmdns.sourceforge.net/ ) project
46and provides some tutorial demos.
57
6- ## The JmDNS Library
8+ ## The JmDNS Library ##
79
8- ### About
10+ ### About ###
911
1012JmDNS works a little differently from avahi, although it does the same job. You can separate its
1113functionality into two parts:
@@ -17,21 +19,21 @@ What the latter means, is that it will be automatically detect what network inte
1719and also be aware of those interfaces going up and down whilst providing a dynamic awareness of
1820the zeroconf services that appear and disappear with those interfaces.
1921
20- The network topology part of jmdns is still fairly experimental.
22+ The network topology part of jmdns is still fairly experimental.
2123
22- ### The Experimental Part
24+ ### The Experimental Part ###
2325
2426The network topology aware part of zeroconf is quite important. On android in particular it saves
2527you having to worry about detecting the ip of your interface, which is rather handy. This part is
2628quite reliable after having helped with some patches upstream.
2729
2830It does have problems however handling multiple network interfaces and can also be confusing with the
2931way it handles ipv6. I have some patches here in this code set which get it working, but either aren't
30- upstream yet, or probably not the proper solution yet.
32+ upstream yet, or probably not the proper solution yet.
3133
3234Hence we have a snapshot of the sources here.
3335
34- ### Publishing
36+ ### Publishing ###
3537
3638Publishing is relatively straightforward. For ros environments, we typically only ever want or need to
3739publish the ros master, in which case you'd publish it under something like:
@@ -40,20 +42,20 @@ publish the ros master, in which case you'd publish it under something like:
4042_ros-master._tcp 11311
4143```
4244
43- ### Discovery
45+ ### Discovery ###
4446
4547There are two methods in the jmdns library for discovery. The first is via * polling* , which will always be
4648the far more reliable method (especially if your interface is up and down alot and likely to get
4749jmdns confused). The second is via event based * listeners* which give you callbacks to instantly
4850react on a zeroconf service coming up or down.
4951
50- ## The Ros Wrapper
52+ ## The ROS Wrapper ##
5153
5254I've got a couple of classes set up to more easily handle the jmdns library for our purposes (jmdns
5355can be quite messy to program with). It's not a full node, but it wouldn't be a stretch to
5456convert this into a full node's functionality using zeroconf_msgs as the basis for handles that work
5557in a similar way to the ros zeroconf_avahi package.
5658
57- ## Tutorials
59+ ## Tutorials ##
5860
5961Instructions can be found in the readme in the jmdns_tutorials package.
0 commit comments