diff --git a/src/zutil/net/dns/MulticastDNSClient.java b/src/zutil/net/dns/MulticastDNSClient.java index 3ac48e9..bcdc5e3 100755 --- a/src/zutil/net/dns/MulticastDNSClient.java +++ b/src/zutil/net/dns/MulticastDNSClient.java @@ -24,8 +24,52 @@ package zutil.net.dns; +import zutil.net.threaded.ThreadedUDPNetwork; +import zutil.net.threaded.ThreadedUDPNetworkThread; +import zutil.parser.binary.BinaryStructParser; +import zutil.parser.binary.BinaryStructWriter; + +import java.io.IOException; +import java.net.DatagramPacket; +import java.net.InetAddress; +import java.net.UnknownHostException; + /** - * Created by ezivkoc on 2016-02-09. + * Created by Ziver */ -public class MulticastDNSClient { +public class MulticastDNSClient extends ThreadedUDPNetwork implements ThreadedUDPNetworkThread{ + private static final String MDNS_MULTICAST_ADDR = "224.0.0.251"; + private static final int MDNS_MULTICAST_PORT = 5353; + + + public MulticastDNSClient() throws IOException { + super(null, MDNS_MULTICAST_ADDR, MDNS_MULTICAST_PORT); + setThread( this ); + } + + + public void sendProbe() { + try { + BinaryStructWriter out = new BinaryStructWriter(); + + DNSPacket header = new DNSPacket(); + out.write(header); + + DatagramPacket packet = null; + + packet = new DatagramPacket( + out.getByteArray(), out.getLength(), + InetAddress.getByName( MDNS_MULTICAST_ADDR ), + MDNS_MULTICAST_PORT ); + send(packet); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + public void receivedPacket(DatagramPacket packet, ThreadedUDPNetwork network) { + DNSPacket header = new DNSPacket(); + int length = BinaryStructParser.parse(header, packet.getData()); + } } diff --git a/src/zutil/net/ssdp/SSDPServer.java b/src/zutil/net/ssdp/SSDPServer.java index 883646c..457a97f 100755 --- a/src/zutil/net/ssdp/SSDPServer.java +++ b/src/zutil/net/ssdp/SSDPServer.java @@ -27,7 +27,7 @@ package zutil.net.ssdp; import zutil.StringUtil; import zutil.io.StringOutputStream; import zutil.log.LogUtil; -import zutil.net.http.HttpHeader; +import zutil.net.http.HttpHeader; import zutil.net.http.HttpHeaderParser; import zutil.net.http.HttpPrintStream; import zutil.net.threaded.ThreadedUDPNetwork; @@ -88,7 +88,7 @@ public class SSDPServer extends ThreadedUDPNetwork implements ThreadedUDPNetwork services = new HashMap(); - setChacheTime( DEFAULT_CACHE_TIME ); + setCacheTime( DEFAULT_CACHE_TIME ); enableNotify( true ); } @@ -118,7 +118,7 @@ public class SSDPServer extends ThreadedUDPNetwork implements ThreadedUDPNetwork * * @param time is the time in seconds */ - public void setChacheTime(int time){ + public void setCacheTime(int time){ cache_time = time; if( isNotifyEnabled() ){ enableNotify(false); @@ -169,8 +169,8 @@ public class SSDPServer extends ThreadedUDPNetwork implements ThreadedUDPNetwork public void receivedPacket(DatagramPacket packet, ThreadedUDPNetwork network) { try { String msg = new String( packet.getData(), packet.getOffset(), packet.getLength() ); - HttpHeaderParser headerParser = new HttpHeaderParser( msg ); - HttpHeader header = headerParser.read(); + HttpHeaderParser headerParser = new HttpHeaderParser( msg ); + HttpHeader header = headerParser.read(); // ******* Respond // Check that the message is an ssdp discovery message diff --git a/src/zutil/parser/binary/BinaryStructWriter.java b/src/zutil/parser/binary/BinaryStructWriter.java new file mode 100755 index 0000000..53674ca --- /dev/null +++ b/src/zutil/parser/binary/BinaryStructWriter.java @@ -0,0 +1,50 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2015 Ziver Koc + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package zutil.parser.binary; + + +/** + * Created by Ziver + */ +/*TODO:*/ public class BinaryStructWriter { + + private byte[] data; + private int length; + + + + public void write(BinaryStruct struct) { + + } + + + public byte[] getByteArray() { + return data; + } + + public int getLength() { + return length; + } +}