From f18e1cb37c23e58601ec3870df07efa4b0f227c2 Mon Sep 17 00:00:00 2001 From: brutzman <brutzman@DESKTOP-2S09UKA> Date: Tue, 11 Aug 2020 17:39:59 -0700 Subject: [PATCH] refactor improvements to handle boolean, int, float, string. now suitable for stealing and reuse! --- .../UdpMulticastHttpExamples/UdpReceiver.java | 49 ++- .../UdpMulticastHttpExamples/UdpSender.java | 66 ++-- .../UdpTerminalLog.txt | 340 ++++++++++++------ 3 files changed, 305 insertions(+), 150 deletions(-) diff --git a/examples/src/UdpMulticastHttpExamples/UdpReceiver.java b/examples/src/UdpMulticastHttpExamples/UdpReceiver.java index 829e2c19e3..22792e2230 100644 --- a/examples/src/UdpMulticastHttpExamples/UdpReceiver.java +++ b/examples/src/UdpMulticastHttpExamples/UdpReceiver.java @@ -2,7 +2,6 @@ package UdpMulticastHttpExamples; import java.io.*; import java.net.*; -import java.nio.ByteBuffer; /** * An example of receiving UDP packets. Since very often both the @@ -11,6 +10,7 @@ import java.nio.ByteBuffer; * * Start this before launching UdpSender. * + * @see https://docs.oracle.com/javase/tutorial/essential/io/datastreams.html * @author mcgredo * @author brutzman */ @@ -27,7 +27,6 @@ public class UdpReceiver public static void main(String[] args) throws IOException { DatagramSocket udpSocket = null; - int packetCount = 0; try { @@ -35,34 +34,54 @@ public class UdpReceiver // Create a UDP socket udpSocket = new DatagramSocket(RECEIVING_PORT); - udpSocket.setReceiveBufferSize(1500); - udpSocket.setBroadcast(false); // we're just receiving here + udpSocket.setReceiveBufferSize(1500); // how many bytes are in buffer? MTU=1500 is good + udpSocket.setBroadcast(false); // we're just receiving here - ByteBuffer buffer = ByteBuffer.allocate(1500); - DatagramPacket receivePacket = new DatagramPacket(buffer.array(), buffer.capacity()); + byte[] byteArray = new byte[1500]; + DatagramPacket receivePacket = new DatagramPacket(byteArray, byteArray.length); - float first, second; + ByteArrayInputStream bais = new ByteArrayInputStream(byteArray); + DataInputStream dis = new DataInputStream(bais); + + boolean isEvenParity; + int packetCount = 0; + int firstInt; + float secondFloat; + String thirdString; + String padding; // You need a new receiving packet to read from every packet received while (true) { - udpSocket.receive(receivePacket); + packetCount++; // good practice to increment counter at start of loop, when possible + udpSocket.receive(receivePacket); // blocks until packet is received - // What happens if you read an integer? Two double values? *** - first = buffer.getFloat(); // alternatives: readFloat(); readInt(); dis.readUTF(); - second = buffer.getFloat(); + // values of interest follow. order and types of what was sent must match what you are reading! + firstInt = dis.readInt(); + secondFloat = dis.readFloat(); + thirdString = dis.readUTF(); + isEvenParity = dis.readBoolean(); + dis.reset(); // clear the input stream after reading - buffer.clear(); + if (isEvenParity) + padding = " "; + else padding = ""; - System.out.println("first value: " + first + " second value: " + second + " packet count = " + ++packetCount); + System.out.println(UdpReceiver.class.getName() + + ", first int value=" + firstInt + + ", second float value=" + secondFloat + + ", third String value=\"" + thirdString + "\"" + // note that /" is literal quote character + " parity value=" + isEvenParity + padding + + ", packet counter=" + packetCount); } } catch(IOException e) { System.err.println("Problem with UdpReceiver, see exception trace:"); System.err.println(e); - } finally { - + } + finally // clean up prior to exit, don't want to leave behind zombie + { if (udpSocket != null) udpSocket.close(); } diff --git a/examples/src/UdpMulticastHttpExamples/UdpSender.java b/examples/src/UdpMulticastHttpExamples/UdpSender.java index 1d1df72eb7..4d1132f695 100644 --- a/examples/src/UdpMulticastHttpExamples/UdpSender.java +++ b/examples/src/UdpMulticastHttpExamples/UdpSender.java @@ -11,12 +11,14 @@ import java.net.*; * * Start this before launching UdpReceiver. * + * @see https://docs.oracle.com/javase/tutorial/essential/io/datastreams.html * @author mcgredo * @author brutzman */ public class UdpSender { - public static final String MY_NAME = System.getProperty("user.name"); + // System properties: https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html + public static final String MY_NAME = System.getProperty("user.name"); // guru incantation 8) public static final int SENDING_PORT = 1414; public static final int RECEIVING_PORT = 1415; public static final String DESTINATION_HOST = "localhost"; // localhost 127.0.0.1 or argon 10.1.105.1 @@ -26,10 +28,15 @@ public class UdpSender { DatagramSocket udpSocket = null; DataOutputStream dos = null; + int packetID = 0; // counter variable to send in packet + float value = -1.0f; // unreachable value is good sentinel to ensure expected changes occur + String message = "Hello MV3500"; // no really + String padding = new String(); try { - System.out.println("UdpSender started..."); + System.out.println(UdpSender.class.getName() + " shows how to send simple-type values via DataOutputStream"); + System.out.println(UdpSender.class.getName() + " started..."); // Create a UDP socket udpSocket = new DatagramSocket(SENDING_PORT); @@ -38,42 +45,61 @@ public class UdpSender // is a java.io utility that lets us put together an array of binary // data, which we put into the UDP packet. - ByteArrayOutputStream baos = new ByteArrayOutputStream(1500); - dos = new DataOutputStream(baos); + ByteArrayOutputStream baos = new ByteArrayOutputStream(1500); // how many bytes are in buffer? MTU=1500 is good + dos = new DataOutputStream(baos); // wrapper for writing values, connects both streams - // alternatives: writeFloat(17.0f); writeInt(17); writeUTF("\"hello MV3500 no really\""); - dos.writeFloat(17.0f); - dos.writeFloat(24.0f); - byte[] buffer = baos.toByteArray(); - // Put together a packet to send + // these types and order of variables must match on sender and receiver + byte[] byteArray = baos.toByteArray(); // ID of the host we are sending to InetAddress destinationAddress = InetAddress.getByName(DESTINATION_HOST); // ID of the host we are sending from InetAddress sourceAddress = InetAddress.getByName("localhost"); // possibly identical if source not modified - DatagramPacket packet = new DatagramPacket(buffer, buffer.length, destinationAddress, RECEIVING_PORT); + DatagramPacket datagramPacket = new DatagramPacket(byteArray, byteArray.length, destinationAddress, RECEIVING_PORT); - // How fast does this go? Does UDP try to slow it down, or does - // this cause network problems? (hint: yes for an unlimited send - // rate, unlike TCP). How do you know on the receiving side - // that you haven't received a duplicate UDP packet, out of - // order packet, or dropped packet? + // Hmmm, how fast does UDP stream go? Does UDP effectively slow packets down, or does + // this cause network problems? (hint: yes for an unlimited send rate, unlike TCP). + // How do you know on the receiving side that you haven't received a + // duplicate UDP packet, out-of-order packet, or dropped packet? your responsibility. for (int index = 1; index <= 100; index++) // avoid infinite send loops in code, they can be hard to kill! { - udpSocket.send(packet); - Thread.sleep(1000); // Send 100, one per second - System.out.println(MY_NAME + ": " + sourceAddress + " sent packet " + index + " of 100"); + packetID++; // increment counter, prefer using explicit value to index + value = 100 - packetID; // countdown + boolean isEvenParity = ((packetID % 2) == 0); // % is modulo operator + + // values of interest follow. order and types of what was sent must match what you are reading! + dos.writeInt (packetID); + dos.writeFloat (value); + dos.writeUTF (message); + dos.writeBoolean(isEvenParity); + dos.flush(); // sends DataOutputStream to ByteArrayOutputStream + byteArray = baos.toByteArray(); // OK so go get the flushed result... + datagramPacket.setData(byteArray); // and put it in the packet... + udpSocket.send(datagramPacket); // and send it away. boom gone, nonblocking. + + if (isEvenParity) + padding = " "; + else padding = ""; + + Thread.sleep(1000); // Send packets at rate of one per second + System.out.println(UdpSender.class.getName() + ": " + MY_NAME + " " + sourceAddress + + " sent values(" + packetID + ", " + value + ", \"" + message + "\", " + isEvenParity + + ")" + padding + " as packet #" + index + " of 100"); + baos.reset(); // clear the output stream after sending } - System.out.println("UdpSender complete."); + System.out.println(UdpSender.class.getName() + " complete."); // all done + } catch (IOException | InterruptedException e) { System.err.println("Problem with UdpSender, see exception trace:"); System.err.println(e); - } finally { + } + finally // clean up prior to exit, don't want to leave behind zombies + { if (udpSocket != null) udpSocket.close(); diff --git a/examples/src/UdpMulticastHttpExamples/UdpTerminalLog.txt b/examples/src/UdpMulticastHttpExamples/UdpTerminalLog.txt index daf5bcbf66..825be46a72 100644 --- a/examples/src/UdpMulticastHttpExamples/UdpTerminalLog.txt +++ b/examples/src/UdpMulticastHttpExamples/UdpTerminalLog.txt @@ -1,122 +1,232 @@ Invocation instructions: -1. run/debug UdpReceiver.java +1. run/debug UdpReceiver.java so it is listening. 2. run/debug UdpSender.java -Program responses: +Program responses, sender and receiver: =================================================== -run: -UdpSender started... -Sent packet 1 of 100 -Sent packet 2 of 100 -Sent packet 3 of 100 -Sent packet 4 of 100 -Sent packet 5 of 100 -Sent packet 6 of 100 -Sent packet 7 of 100 -Sent packet 8 of 100 -Sent packet 9 of 100 -Sent packet 10 of 100 -Sent packet 11 of 100 -Sent packet 12 of 100 -Sent packet 13 of 100 -Sent packet 14 of 100 -Sent packet 15 of 100 -Sent packet 16 of 100 -Sent packet 17 of 100 -Sent packet 18 of 100 -Sent packet 19 of 100 -Sent packet 20 of 100 -Sent packet 21 of 100 -Sent packet 22 of 100 -Sent packet 23 of 100 -Sent packet 24 of 100 -Sent packet 25 of 100 -Sent packet 26 of 100 -Sent packet 27 of 100 -Sent packet 28 of 100 -Sent packet 29 of 100 -Sent packet 30 of 100 -Sent packet 31 of 100 -Sent packet 32 of 100 -Sent packet 33 of 100 -Sent packet 34 of 100 -Sent packet 35 of 100 -Sent packet 36 of 100 -Sent packet 37 of 100 -Sent packet 38 of 100 -Sent packet 39 of 100 -Sent packet 40 of 100 -Sent packet 41 of 100 -Sent packet 42 of 100 -Sent packet 43 of 100 -Sent packet 44 of 100 -Sent packet 45 of 100 -Sent packet 46 of 100 -Sent packet 47 of 100 -Sent packet 48 of 100 -Sent packet 49 of 100 -Sent packet 50 of 100 -Sent packet 51 of 100 -Sent packet 52 of 100 -Sent packet 53 of 100 -Sent packet 54 of 100 -Sent packet 55 of 100 -Sent packet 56 of 100 -Sent packet 57 of 100 -Sent packet 58 of 100 -Sent packet 59 of 100 -Sent packet 60 of 100 -Sent packet 61 of 100 -Sent packet 62 of 100 -Sent packet 63 of 100 -Sent packet 64 of 100 -Sent packet 65 of 100 -Sent packet 66 of 100 -Sent packet 67 of 100 -Sent packet 68 of 100 -Sent packet 69 of 100 -Sent packet 70 of 100 -Sent packet 71 of 100 -Sent packet 72 of 100 -Sent packet 73 of 100 -Sent packet 74 of 100 -Sent packet 75 of 100 -Sent packet 76 of 100 -Sent packet 77 of 100 -Sent packet 78 of 100 -Sent packet 79 of 100 -Sent packet 80 of 100 -Sent packet 81 of 100 -Sent packet 82 of 100 -Sent packet 83 of 100 -Sent packet 84 of 100 -Sent packet 85 of 100 -Sent packet 86 of 100 -Sent packet 87 of 100 -Sent packet 88 of 100 -Sent packet 89 of 100 -Sent packet 90 of 100 -Sent packet 91 of 100 -Sent packet 92 of 100 -Sent packet 93 of 100 -Sent packet 94 of 100 -Sent packet 95 of 100 -Sent packet 96 of 100 -Sent packet 97 of 100 -Sent packet 98 of 100 -Sent packet 99 of 100 -Sent packet 100 of 100 -UdpSender complete. -BUILD SUCCESSFUL (total time: 1 minute 40 seconds) - -=================================================== -run: -UdpReceiver started... -first value: 17.0 second value: 24.0 -first value: 17.0 second value: 24.0 -first value: 17.0 second value: 24.0 -first value: 17.0 second value: 24.0 -[... etc. ...] +ant -f C:\\x-nps-gitlab\\NetworkedGraphicsMV3500\\examples -Dnb.internal.action.name=run.single -Djavac.includes=UdpMulticastHttpExamples/UdpSender.java -Drun.class=UdpMulticastHttpExamples.UdpSender run-single +init: +Deleting: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties +deps-jar: +Updating property file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties +Compiling 1 source file to C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\classes +compile-single: +run-single: +UdpMulticastHttpExamples.UdpSender shows how to send simple-type values via DataOutputStream +UdpMulticastHttpExamples.UdpSender started... +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(1, 99.0, "Hello MV3500", false) as packet #1 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(2, 98.0, "Hello MV3500", true) as packet #2 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(3, 97.0, "Hello MV3500", false) as packet #3 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(4, 96.0, "Hello MV3500", true) as packet #4 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(5, 95.0, "Hello MV3500", false) as packet #5 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(6, 94.0, "Hello MV3500", true) as packet #6 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(7, 93.0, "Hello MV3500", false) as packet #7 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(8, 92.0, "Hello MV3500", true) as packet #8 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(9, 91.0, "Hello MV3500", false) as packet #9 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(10, 90.0, "Hello MV3500", true) as packet #10 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(11, 89.0, "Hello MV3500", false) as packet #11 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(12, 88.0, "Hello MV3500", true) as packet #12 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(13, 87.0, "Hello MV3500", false) as packet #13 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(14, 86.0, "Hello MV3500", true) as packet #14 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(15, 85.0, "Hello MV3500", false) as packet #15 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(16, 84.0, "Hello MV3500", true) as packet #16 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(17, 83.0, "Hello MV3500", false) as packet #17 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(18, 82.0, "Hello MV3500", true) as packet #18 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(19, 81.0, "Hello MV3500", false) as packet #19 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(20, 80.0, "Hello MV3500", true) as packet #20 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(21, 79.0, "Hello MV3500", false) as packet #21 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(22, 78.0, "Hello MV3500", true) as packet #22 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(23, 77.0, "Hello MV3500", false) as packet #23 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(24, 76.0, "Hello MV3500", true) as packet #24 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(25, 75.0, "Hello MV3500", false) as packet #25 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(26, 74.0, "Hello MV3500", true) as packet #26 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(27, 73.0, "Hello MV3500", false) as packet #27 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(28, 72.0, "Hello MV3500", true) as packet #28 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(29, 71.0, "Hello MV3500", false) as packet #29 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(30, 70.0, "Hello MV3500", true) as packet #30 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(31, 69.0, "Hello MV3500", false) as packet #31 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(32, 68.0, "Hello MV3500", true) as packet #32 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(33, 67.0, "Hello MV3500", false) as packet #33 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(34, 66.0, "Hello MV3500", true) as packet #34 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(35, 65.0, "Hello MV3500", false) as packet #35 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(36, 64.0, "Hello MV3500", true) as packet #36 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(37, 63.0, "Hello MV3500", false) as packet #37 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(38, 62.0, "Hello MV3500", true) as packet #38 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(39, 61.0, "Hello MV3500", false) as packet #39 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(40, 60.0, "Hello MV3500", true) as packet #40 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(41, 59.0, "Hello MV3500", false) as packet #41 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(42, 58.0, "Hello MV3500", true) as packet #42 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(43, 57.0, "Hello MV3500", false) as packet #43 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(44, 56.0, "Hello MV3500", true) as packet #44 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(45, 55.0, "Hello MV3500", false) as packet #45 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(46, 54.0, "Hello MV3500", true) as packet #46 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(47, 53.0, "Hello MV3500", false) as packet #47 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(48, 52.0, "Hello MV3500", true) as packet #48 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(49, 51.0, "Hello MV3500", false) as packet #49 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(50, 50.0, "Hello MV3500", true) as packet #50 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(51, 49.0, "Hello MV3500", false) as packet #51 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(52, 48.0, "Hello MV3500", true) as packet #52 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(53, 47.0, "Hello MV3500", false) as packet #53 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(54, 46.0, "Hello MV3500", true) as packet #54 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(55, 45.0, "Hello MV3500", false) as packet #55 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(56, 44.0, "Hello MV3500", true) as packet #56 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(57, 43.0, "Hello MV3500", false) as packet #57 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(58, 42.0, "Hello MV3500", true) as packet #58 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(59, 41.0, "Hello MV3500", false) as packet #59 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(60, 40.0, "Hello MV3500", true) as packet #60 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(61, 39.0, "Hello MV3500", false) as packet #61 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(62, 38.0, "Hello MV3500", true) as packet #62 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(63, 37.0, "Hello MV3500", false) as packet #63 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(64, 36.0, "Hello MV3500", true) as packet #64 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(65, 35.0, "Hello MV3500", false) as packet #65 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(66, 34.0, "Hello MV3500", true) as packet #66 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(67, 33.0, "Hello MV3500", false) as packet #67 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(68, 32.0, "Hello MV3500", true) as packet #68 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(69, 31.0, "Hello MV3500", false) as packet #69 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(70, 30.0, "Hello MV3500", true) as packet #70 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(71, 29.0, "Hello MV3500", false) as packet #71 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(72, 28.0, "Hello MV3500", true) as packet #72 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(73, 27.0, "Hello MV3500", false) as packet #73 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(74, 26.0, "Hello MV3500", true) as packet #74 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(75, 25.0, "Hello MV3500", false) as packet #75 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(76, 24.0, "Hello MV3500", true) as packet #76 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(77, 23.0, "Hello MV3500", false) as packet #77 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(78, 22.0, "Hello MV3500", true) as packet #78 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(79, 21.0, "Hello MV3500", false) as packet #79 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(80, 20.0, "Hello MV3500", true) as packet #80 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(81, 19.0, "Hello MV3500", false) as packet #81 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(82, 18.0, "Hello MV3500", true) as packet #82 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(83, 17.0, "Hello MV3500", false) as packet #83 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(84, 16.0, "Hello MV3500", true) as packet #84 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(85, 15.0, "Hello MV3500", false) as packet #85 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(86, 14.0, "Hello MV3500", true) as packet #86 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(87, 13.0, "Hello MV3500", false) as packet #87 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(88, 12.0, "Hello MV3500", true) as packet #88 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(89, 11.0, "Hello MV3500", false) as packet #89 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(90, 10.0, "Hello MV3500", true) as packet #90 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(91, 9.0, "Hello MV3500", false) as packet #91 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(92, 8.0, "Hello MV3500", true) as packet #92 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(93, 7.0, "Hello MV3500", false) as packet #93 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(94, 6.0, "Hello MV3500", true) as packet #94 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(95, 5.0, "Hello MV3500", false) as packet #95 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(96, 4.0, "Hello MV3500", true) as packet #96 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(97, 3.0, "Hello MV3500", false) as packet #97 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(98, 2.0, "Hello MV3500", true) as packet #98 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(99, 1.0, "Hello MV3500", false) as packet #99 of 100 +UdpMulticastHttpExamples.UdpSender: brutzman localhost/127.0.0.1 sent values(100, 0.0, "Hello MV3500", true) as packet #100 of 100 +UdpMulticastHttpExamples.UdpSender complete. +BUILD SUCCESSFUL (total time: 1 minute 41 seconds) =================================================== +ant -f C:\\x-nps-gitlab\\NetworkedGraphicsMV3500\\examples -Dnb.internal.action.name=run.single -Djavac.includes=UdpMulticastHttpExamples/UdpReceiver.java -Drun.class=UdpMulticastHttpExamples.UdpReceiver run-single +init: +Deleting: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties +deps-jar: +Updating property file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties +Compiling 1 source file to C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\classes +compile-single: +run-single: +UdpMulticastHttpExamples.UdpReceiver started... +UdpMulticastHttpExamples.UdpReceiver, first int value=1, second float value=99.0, third String value="Hello MV3500" parity value=false, packet counter=1 +UdpMulticastHttpExamples.UdpReceiver, first int value=2, second float value=98.0, third String value="Hello MV3500" parity value=true , packet counter=2 +UdpMulticastHttpExamples.UdpReceiver, first int value=3, second float value=97.0, third String value="Hello MV3500" parity value=false, packet counter=3 +UdpMulticastHttpExamples.UdpReceiver, first int value=4, second float value=96.0, third String value="Hello MV3500" parity value=true , packet counter=4 +UdpMulticastHttpExamples.UdpReceiver, first int value=5, second float value=95.0, third String value="Hello MV3500" parity value=false, packet counter=5 +UdpMulticastHttpExamples.UdpReceiver, first int value=6, second float value=94.0, third String value="Hello MV3500" parity value=true , packet counter=6 +UdpMulticastHttpExamples.UdpReceiver, first int value=7, second float value=93.0, third String value="Hello MV3500" parity value=false, packet counter=7 +UdpMulticastHttpExamples.UdpReceiver, first int value=8, second float value=92.0, third String value="Hello MV3500" parity value=true , packet counter=8 +UdpMulticastHttpExamples.UdpReceiver, first int value=9, second float value=91.0, third String value="Hello MV3500" parity value=false, packet counter=9 +UdpMulticastHttpExamples.UdpReceiver, first int value=10, second float value=90.0, third String value="Hello MV3500" parity value=true , packet counter=10 +UdpMulticastHttpExamples.UdpReceiver, first int value=11, second float value=89.0, third String value="Hello MV3500" parity value=false, packet counter=11 +UdpMulticastHttpExamples.UdpReceiver, first int value=12, second float value=88.0, third String value="Hello MV3500" parity value=true , packet counter=12 +UdpMulticastHttpExamples.UdpReceiver, first int value=13, second float value=87.0, third String value="Hello MV3500" parity value=false, packet counter=13 +UdpMulticastHttpExamples.UdpReceiver, first int value=14, second float value=86.0, third String value="Hello MV3500" parity value=true , packet counter=14 +UdpMulticastHttpExamples.UdpReceiver, first int value=15, second float value=85.0, third String value="Hello MV3500" parity value=false, packet counter=15 +UdpMulticastHttpExamples.UdpReceiver, first int value=16, second float value=84.0, third String value="Hello MV3500" parity value=true , packet counter=16 +UdpMulticastHttpExamples.UdpReceiver, first int value=17, second float value=83.0, third String value="Hello MV3500" parity value=false, packet counter=17 +UdpMulticastHttpExamples.UdpReceiver, first int value=18, second float value=82.0, third String value="Hello MV3500" parity value=true , packet counter=18 +UdpMulticastHttpExamples.UdpReceiver, first int value=19, second float value=81.0, third String value="Hello MV3500" parity value=false, packet counter=19 +UdpMulticastHttpExamples.UdpReceiver, first int value=20, second float value=80.0, third String value="Hello MV3500" parity value=true , packet counter=20 +UdpMulticastHttpExamples.UdpReceiver, first int value=21, second float value=79.0, third String value="Hello MV3500" parity value=false, packet counter=21 +UdpMulticastHttpExamples.UdpReceiver, first int value=22, second float value=78.0, third String value="Hello MV3500" parity value=true , packet counter=22 +UdpMulticastHttpExamples.UdpReceiver, first int value=23, second float value=77.0, third String value="Hello MV3500" parity value=false, packet counter=23 +UdpMulticastHttpExamples.UdpReceiver, first int value=24, second float value=76.0, third String value="Hello MV3500" parity value=true , packet counter=24 +UdpMulticastHttpExamples.UdpReceiver, first int value=25, second float value=75.0, third String value="Hello MV3500" parity value=false, packet counter=25 +UdpMulticastHttpExamples.UdpReceiver, first int value=26, second float value=74.0, third String value="Hello MV3500" parity value=true , packet counter=26 +UdpMulticastHttpExamples.UdpReceiver, first int value=27, second float value=73.0, third String value="Hello MV3500" parity value=false, packet counter=27 +UdpMulticastHttpExamples.UdpReceiver, first int value=28, second float value=72.0, third String value="Hello MV3500" parity value=true , packet counter=28 +UdpMulticastHttpExamples.UdpReceiver, first int value=29, second float value=71.0, third String value="Hello MV3500" parity value=false, packet counter=29 +UdpMulticastHttpExamples.UdpReceiver, first int value=30, second float value=70.0, third String value="Hello MV3500" parity value=true , packet counter=30 +UdpMulticastHttpExamples.UdpReceiver, first int value=31, second float value=69.0, third String value="Hello MV3500" parity value=false, packet counter=31 +UdpMulticastHttpExamples.UdpReceiver, first int value=32, second float value=68.0, third String value="Hello MV3500" parity value=true , packet counter=32 +UdpMulticastHttpExamples.UdpReceiver, first int value=33, second float value=67.0, third String value="Hello MV3500" parity value=false, packet counter=33 +UdpMulticastHttpExamples.UdpReceiver, first int value=34, second float value=66.0, third String value="Hello MV3500" parity value=true , packet counter=34 +UdpMulticastHttpExamples.UdpReceiver, first int value=35, second float value=65.0, third String value="Hello MV3500" parity value=false, packet counter=35 +UdpMulticastHttpExamples.UdpReceiver, first int value=36, second float value=64.0, third String value="Hello MV3500" parity value=true , packet counter=36 +UdpMulticastHttpExamples.UdpReceiver, first int value=37, second float value=63.0, third String value="Hello MV3500" parity value=false, packet counter=37 +UdpMulticastHttpExamples.UdpReceiver, first int value=38, second float value=62.0, third String value="Hello MV3500" parity value=true , packet counter=38 +UdpMulticastHttpExamples.UdpReceiver, first int value=39, second float value=61.0, third String value="Hello MV3500" parity value=false, packet counter=39 +UdpMulticastHttpExamples.UdpReceiver, first int value=40, second float value=60.0, third String value="Hello MV3500" parity value=true , packet counter=40 +UdpMulticastHttpExamples.UdpReceiver, first int value=41, second float value=59.0, third String value="Hello MV3500" parity value=false, packet counter=41 +UdpMulticastHttpExamples.UdpReceiver, first int value=42, second float value=58.0, third String value="Hello MV3500" parity value=true , packet counter=42 +UdpMulticastHttpExamples.UdpReceiver, first int value=43, second float value=57.0, third String value="Hello MV3500" parity value=false, packet counter=43 +UdpMulticastHttpExamples.UdpReceiver, first int value=44, second float value=56.0, third String value="Hello MV3500" parity value=true , packet counter=44 +UdpMulticastHttpExamples.UdpReceiver, first int value=45, second float value=55.0, third String value="Hello MV3500" parity value=false, packet counter=45 +UdpMulticastHttpExamples.UdpReceiver, first int value=46, second float value=54.0, third String value="Hello MV3500" parity value=true , packet counter=46 +UdpMulticastHttpExamples.UdpReceiver, first int value=47, second float value=53.0, third String value="Hello MV3500" parity value=false, packet counter=47 +UdpMulticastHttpExamples.UdpReceiver, first int value=48, second float value=52.0, third String value="Hello MV3500" parity value=true , packet counter=48 +UdpMulticastHttpExamples.UdpReceiver, first int value=49, second float value=51.0, third String value="Hello MV3500" parity value=false, packet counter=49 +UdpMulticastHttpExamples.UdpReceiver, first int value=50, second float value=50.0, third String value="Hello MV3500" parity value=true , packet counter=50 +UdpMulticastHttpExamples.UdpReceiver, first int value=51, second float value=49.0, third String value="Hello MV3500" parity value=false, packet counter=51 +UdpMulticastHttpExamples.UdpReceiver, first int value=52, second float value=48.0, third String value="Hello MV3500" parity value=true , packet counter=52 +UdpMulticastHttpExamples.UdpReceiver, first int value=53, second float value=47.0, third String value="Hello MV3500" parity value=false, packet counter=53 +UdpMulticastHttpExamples.UdpReceiver, first int value=54, second float value=46.0, third String value="Hello MV3500" parity value=true , packet counter=54 +UdpMulticastHttpExamples.UdpReceiver, first int value=55, second float value=45.0, third String value="Hello MV3500" parity value=false, packet counter=55 +UdpMulticastHttpExamples.UdpReceiver, first int value=56, second float value=44.0, third String value="Hello MV3500" parity value=true , packet counter=56 +UdpMulticastHttpExamples.UdpReceiver, first int value=57, second float value=43.0, third String value="Hello MV3500" parity value=false, packet counter=57 +UdpMulticastHttpExamples.UdpReceiver, first int value=58, second float value=42.0, third String value="Hello MV3500" parity value=true , packet counter=58 +UdpMulticastHttpExamples.UdpReceiver, first int value=59, second float value=41.0, third String value="Hello MV3500" parity value=false, packet counter=59 +UdpMulticastHttpExamples.UdpReceiver, first int value=60, second float value=40.0, third String value="Hello MV3500" parity value=true , packet counter=60 +UdpMulticastHttpExamples.UdpReceiver, first int value=61, second float value=39.0, third String value="Hello MV3500" parity value=false, packet counter=61 +UdpMulticastHttpExamples.UdpReceiver, first int value=62, second float value=38.0, third String value="Hello MV3500" parity value=true , packet counter=62 +UdpMulticastHttpExamples.UdpReceiver, first int value=63, second float value=37.0, third String value="Hello MV3500" parity value=false, packet counter=63 +UdpMulticastHttpExamples.UdpReceiver, first int value=64, second float value=36.0, third String value="Hello MV3500" parity value=true , packet counter=64 +UdpMulticastHttpExamples.UdpReceiver, first int value=65, second float value=35.0, third String value="Hello MV3500" parity value=false, packet counter=65 +UdpMulticastHttpExamples.UdpReceiver, first int value=66, second float value=34.0, third String value="Hello MV3500" parity value=true , packet counter=66 +UdpMulticastHttpExamples.UdpReceiver, first int value=67, second float value=33.0, third String value="Hello MV3500" parity value=false, packet counter=67 +UdpMulticastHttpExamples.UdpReceiver, first int value=68, second float value=32.0, third String value="Hello MV3500" parity value=true , packet counter=68 +UdpMulticastHttpExamples.UdpReceiver, first int value=69, second float value=31.0, third String value="Hello MV3500" parity value=false, packet counter=69 +UdpMulticastHttpExamples.UdpReceiver, first int value=70, second float value=30.0, third String value="Hello MV3500" parity value=true , packet counter=70 +UdpMulticastHttpExamples.UdpReceiver, first int value=71, second float value=29.0, third String value="Hello MV3500" parity value=false, packet counter=71 +UdpMulticastHttpExamples.UdpReceiver, first int value=72, second float value=28.0, third String value="Hello MV3500" parity value=true , packet counter=72 +UdpMulticastHttpExamples.UdpReceiver, first int value=73, second float value=27.0, third String value="Hello MV3500" parity value=false, packet counter=73 +UdpMulticastHttpExamples.UdpReceiver, first int value=74, second float value=26.0, third String value="Hello MV3500" parity value=true , packet counter=74 +UdpMulticastHttpExamples.UdpReceiver, first int value=75, second float value=25.0, third String value="Hello MV3500" parity value=false, packet counter=75 +UdpMulticastHttpExamples.UdpReceiver, first int value=76, second float value=24.0, third String value="Hello MV3500" parity value=true , packet counter=76 +UdpMulticastHttpExamples.UdpReceiver, first int value=77, second float value=23.0, third String value="Hello MV3500" parity value=false, packet counter=77 +UdpMulticastHttpExamples.UdpReceiver, first int value=78, second float value=22.0, third String value="Hello MV3500" parity value=true , packet counter=78 +UdpMulticastHttpExamples.UdpReceiver, first int value=79, second float value=21.0, third String value="Hello MV3500" parity value=false, packet counter=79 +UdpMulticastHttpExamples.UdpReceiver, first int value=80, second float value=20.0, third String value="Hello MV3500" parity value=true , packet counter=80 +UdpMulticastHttpExamples.UdpReceiver, first int value=81, second float value=19.0, third String value="Hello MV3500" parity value=false, packet counter=81 +UdpMulticastHttpExamples.UdpReceiver, first int value=82, second float value=18.0, third String value="Hello MV3500" parity value=true , packet counter=82 +UdpMulticastHttpExamples.UdpReceiver, first int value=83, second float value=17.0, third String value="Hello MV3500" parity value=false, packet counter=83 +UdpMulticastHttpExamples.UdpReceiver, first int value=84, second float value=16.0, third String value="Hello MV3500" parity value=true , packet counter=84 +UdpMulticastHttpExamples.UdpReceiver, first int value=85, second float value=15.0, third String value="Hello MV3500" parity value=false, packet counter=85 +UdpMulticastHttpExamples.UdpReceiver, first int value=86, second float value=14.0, third String value="Hello MV3500" parity value=true , packet counter=86 +UdpMulticastHttpExamples.UdpReceiver, first int value=87, second float value=13.0, third String value="Hello MV3500" parity value=false, packet counter=87 +UdpMulticastHttpExamples.UdpReceiver, first int value=88, second float value=12.0, third String value="Hello MV3500" parity value=true , packet counter=88 +UdpMulticastHttpExamples.UdpReceiver, first int value=89, second float value=11.0, third String value="Hello MV3500" parity value=false, packet counter=89 +UdpMulticastHttpExamples.UdpReceiver, first int value=90, second float value=10.0, third String value="Hello MV3500" parity value=true , packet counter=90 +UdpMulticastHttpExamples.UdpReceiver, first int value=91, second float value=9.0, third String value="Hello MV3500" parity value=false, packet counter=91 +UdpMulticastHttpExamples.UdpReceiver, first int value=92, second float value=8.0, third String value="Hello MV3500" parity value=true , packet counter=92 +UdpMulticastHttpExamples.UdpReceiver, first int value=93, second float value=7.0, third String value="Hello MV3500" parity value=false, packet counter=93 +UdpMulticastHttpExamples.UdpReceiver, first int value=94, second float value=6.0, third String value="Hello MV3500" parity value=true , packet counter=94 +UdpMulticastHttpExamples.UdpReceiver, first int value=95, second float value=5.0, third String value="Hello MV3500" parity value=false, packet counter=95 +UdpMulticastHttpExamples.UdpReceiver, first int value=96, second float value=4.0, third String value="Hello MV3500" parity value=true , packet counter=96 +UdpMulticastHttpExamples.UdpReceiver, first int value=97, second float value=3.0, third String value="Hello MV3500" parity value=false, packet counter=97 +UdpMulticastHttpExamples.UdpReceiver, first int value=98, second float value=2.0, third String value="Hello MV3500" parity value=true , packet counter=98 +UdpMulticastHttpExamples.UdpReceiver, first int value=99, second float value=1.0, third String value="Hello MV3500" parity value=false, packet counter=99 +UdpMulticastHttpExamples.UdpReceiver, first int value=100, second float value=0.0, third String value="Hello MV3500" parity value=true , packet counter=100 +BUILD STOPPED (total time: 2 minutes 23 seconds) +=================================================== \ No newline at end of file -- GitLab