Skip to content

Commit 32bb7f6

Browse files
author
Federico Fissore
committed
zeroconf: first raw impl
1 parent bf3daeb commit 32bb7f6

File tree

3 files changed

+47
-0
lines changed

3 files changed

+47
-0
lines changed

app/lib/jmdns-3.4.1.jar

200 KB
Binary file not shown.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package processing.app.zeroconf;
2+
3+
import javax.jmdns.ServiceEvent;
4+
5+
public interface BoardListener {
6+
7+
void boardOffline(ServiceEvent serviceEvent);
8+
9+
void boardOnline(ServiceEvent serviceEvent);
10+
11+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package processing.app.zeroconf;
2+
3+
import javax.jmdns.JmDNS;
4+
import javax.jmdns.NetworkTopologyDiscovery;
5+
import javax.jmdns.ServiceEvent;
6+
import javax.jmdns.ServiceListener;
7+
import java.io.IOException;
8+
import java.net.InetAddress;
9+
10+
public class Discovery implements ServiceListener {
11+
12+
private final BoardListener listener;
13+
14+
public Discovery(BoardListener listener) throws IOException {
15+
this.listener = listener;
16+
for (InetAddress addr : NetworkTopologyDiscovery.Factory.getInstance().getInetAddresses()) {
17+
JmDNS jmDNS = JmDNS.create(addr);
18+
jmDNS.addServiceListener("_arduino._tcp.local.", this);
19+
}
20+
}
21+
22+
@Override
23+
public void serviceAdded(ServiceEvent serviceEvent) {
24+
serviceEvent.getDNS().requestServiceInfo(serviceEvent.getInfo().getServer(), serviceEvent.getName(), true);
25+
}
26+
27+
@Override
28+
public void serviceRemoved(ServiceEvent serviceEvent) {
29+
listener.boardOffline(serviceEvent);
30+
}
31+
32+
@Override
33+
public void serviceResolved(ServiceEvent serviceEvent) {
34+
listener.boardOnline(serviceEvent);
35+
}
36+
}

0 commit comments

Comments
 (0)