From fbf2df29118ec1cbd8c00e97c29ac686ebc160ca Mon Sep 17 00:00:00 2001 From: Anton Keks Date: Sun, 31 Aug 2014 20:02:54 +0300 Subject: [PATCH] make sure we close the socket --- src/net/azib/ipscan/fetchers/HostnameFetcher.java | 5 ++++- src/net/azib/ipscan/util/MDNSResolver.java | 7 ++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/net/azib/ipscan/fetchers/HostnameFetcher.java b/src/net/azib/ipscan/fetchers/HostnameFetcher.java index bc654aa1..5adf2795 100644 --- a/src/net/azib/ipscan/fetchers/HostnameFetcher.java +++ b/src/net/azib/ipscan/fetchers/HostnameFetcher.java @@ -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; diff --git a/src/net/azib/ipscan/util/MDNSResolver.java b/src/net/azib/ipscan/util/MDNSResolver.java index 70b6e9cc..94e138db 100644 --- a/src/net/azib/ipscan/util/MDNSResolver.java +++ b/src/net/azib/ipscan/util/MDNSResolver.java @@ -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"))); }