55ddef01ce3516b0c7138e8b70fb4784c57bd640
java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/UDPMirror.java
| ... | ... | @@ -30,25 +30,26 @@ public class UDPMirror { |
| 30 | 30 | } |
| 31 | 31 | int listeningOnPort = Integer.valueOf(args[c++]); |
| 32 | 32 | byte[] buf = new byte[65536]; |
| 33 | - DatagramSocket udpSocket = new DatagramSocket(listeningOnPort); |
|
| 34 | - DatagramPacket received = new DatagramPacket(buf, buf.length); |
|
| 35 | - DatagramSocket[] sendingSockets = new DatagramSocket[(args.length - 1) / 2]; |
|
| 36 | - DatagramPacket[] mirroredPackets = new DatagramPacket[(args.length - 1) / 2]; |
|
| 37 | - while (c < args.length - 1) { |
|
| 38 | - sendingSockets[(c - 1) / 2] = new DatagramSocket(); |
|
| 39 | - mirroredPackets[(c - 1) / 2] = new DatagramPacket(buf, buf.length, InetAddress.getByName(args[c]), |
|
| 40 | - Integer.valueOf(args[c + 1])); |
|
| 41 | - c += 2; |
|
| 42 | - } |
|
| 43 | - while (true) { |
|
| 44 | - udpSocket.receive(received); |
|
| 45 | - if (verbose) { |
|
| 46 | - String packetAsString = new String(received.getData(), received.getOffset(), received.getLength()).trim(); |
|
| 47 | - System.out.println(packetAsString); |
|
| 33 | + try (DatagramSocket udpSocket = new DatagramSocket(listeningOnPort)) { |
|
| 34 | + DatagramPacket received = new DatagramPacket(buf, buf.length); |
|
| 35 | + DatagramSocket[] sendingSockets = new DatagramSocket[(args.length - 1) / 2]; |
|
| 36 | + DatagramPacket[] mirroredPackets = new DatagramPacket[(args.length - 1) / 2]; |
|
| 37 | + while (c < args.length - 1) { |
|
| 38 | + sendingSockets[(c - 1) / 2] = new DatagramSocket(); |
|
| 39 | + mirroredPackets[(c - 1) / 2] = new DatagramPacket(buf, buf.length, InetAddress.getByName(args[c]), |
|
| 40 | + Integer.valueOf(args[c + 1])); |
|
| 41 | + c += 2; |
|
| 48 | 42 | } |
| 49 | - for (int i = 0; i < mirroredPackets.length; i++) { |
|
| 50 | - mirroredPackets[i].setLength(received.getLength()); |
|
| 51 | - sendingSockets[i].send(mirroredPackets[i]); |
|
| 43 | + while (true) { |
|
| 44 | + udpSocket.receive(received); |
|
| 45 | + if (verbose) { |
|
| 46 | + String packetAsString = new String(received.getData(), received.getOffset(), received.getLength()).trim(); |
|
| 47 | + System.out.println(packetAsString); |
|
| 48 | + } |
|
| 49 | + for (int i = 0; i < mirroredPackets.length; i++) { |
|
| 50 | + mirroredPackets[i].setLength(received.getLength()); |
|
| 51 | + sendingSockets[i].send(mirroredPackets[i]); |
|
| 52 | + } |
|
| 52 | 53 | } |
| 53 | 54 | } |
| 54 | 55 | } |