diff --git a/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/UDPMirror.java b/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/UDPMirror.java index cb8b0ca8e66..15fcb93a898 100755 --- a/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/UDPMirror.java +++ b/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/UDPMirror.java @@ -22,19 +22,30 @@ public class UDPMirror { if (args.length == 0) { usage(); } else { - int listeningOnPort = Integer.valueOf(args[0]); + int c = 0; + boolean verbose = false; + if (args[c].equals("-v")) { + c++; + verbose = true; + } + int listeningOnPort = Integer.valueOf(args[c++]); byte[] buf = new byte[65536]; DatagramSocket udpSocket = new DatagramSocket(listeningOnPort); DatagramPacket received = new DatagramPacket(buf, buf.length); DatagramSocket[] sendingSockets = new DatagramSocket[(args.length - 1) / 2]; DatagramPacket[] mirroredPackets = new DatagramPacket[(args.length - 1) / 2]; - for (int i = 1; i < args.length - 1; i += 2) { - sendingSockets[(i - 1) / 2] = new DatagramSocket(); - mirroredPackets[(i - 1) / 2] = new DatagramPacket(buf, buf.length, InetAddress.getByName(args[i]), - Integer.valueOf(args[i + 1])); + while (c < args.length - 1) { + sendingSockets[(c - 1) / 2] = new DatagramSocket(); + mirroredPackets[(c - 1) / 2] = new DatagramPacket(buf, buf.length, InetAddress.getByName(args[c]), + Integer.valueOf(args[c + 1])); + c += 2; } while (true) { udpSocket.receive(received); + if (verbose) { + String packetAsString = new String(received.getData(), received.getOffset(), received.getLength()).trim(); + System.out.println(packetAsString); + } for (int i = 0; i < mirroredPackets.length; i++) { mirroredPackets[i].setLength(received.getLength()); sendingSockets[i].send(mirroredPackets[i]); @@ -44,6 +55,7 @@ public class UDPMirror { } private static void usage() { - System.out.println("Usage: java "+UDPMirror.class.getName()+" hostname1 port1 [hostname2 port2]*"); + System.out.println("Usage: java "+UDPMirror.class.getName()+" [-v] hostname1 port1 [hostname2 port2]*"); + System.out.println(" -v\tPrint packets received to stdout"); } }