mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-04 11:23:50 +00:00
added -v flag to UDPMirror so we can optionally see what's being forwarded on the console
This commit is contained in:
1 parent
93395921b0
commit
adf935acc1
1 file changed
+18
-6
+18
-6
@@ -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()+" <listeningport> hostname1 port1 [hostname2 port2]*");
|
||||
System.out.println("Usage: java "+UDPMirror.class.getName()+" [-v] <listeningport> hostname1 port1 [hostname2 port2]*");
|
||||
System.out.println(" -v\tPrint packets received to stdout");
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user