make sure we close the socket

This commit is contained in:
Anton Keks 2014-08-31 20:02:54 +03:00
parent 0beb26136e
commit fbf2df2911
2 changed files with 10 additions and 2 deletions

View File

@ -62,7 +62,10 @@ public class HostnameFetcher extends AbstractFetcher {
private String resolveWithMulticastDNS(InetAddress ip) {
try {
return new MDNSResolver().resolve(ip);
MDNSResolver resolver = new MDNSResolver();
String name = resolver.resolve(ip);
resolver.close();
return name;
}
catch (IOException e) {
return null;

View File

@ -1,13 +1,14 @@
package net.azib.ipscan.util;
import java.io.ByteArrayOutputStream;
import java.io.Closeable;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class MDNSResolver {
public class MDNSResolver implements Closeable {
DatagramSocket mdns = new DatagramSocket();
InetAddress mdnsIP = InetAddress.getByName("224.0.0.251");
private int mdnsPort = 5353;
@ -69,6 +70,10 @@ public class MDNSResolver {
return decodeName(response, offset, respPacket.getLength() - offset);
}
public void close() {
mdns.close();
}
public static void main(String[] args) throws IOException {
System.out.println(new MDNSResolver().resolve(InetAddress.getByName("192.168.0.2")));
}