diff --git a/src/edu/nps/moves/dis7/examples/PduSender.java b/src/edu/nps/moves/dis7/examples/PduSender.java index faaed979344456e3f3355b2e6553b9d757d04990..823098548bb1e72ba3aeb82b7bf33dc61efe8412 100644 --- a/src/edu/nps/moves/dis7/examples/PduSender.java +++ b/src/edu/nps/moves/dis7/examples/PduSender.java @@ -2,10 +2,13 @@ package edu.nps.moves.dis7.examples; import edu.nps.moves.dis7.*; import edu.nps.moves.dis7.enumerations.DISPDUType; +import edu.nps.moves.dis7.utilities.DisThreadedNetIF; + import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.net.DatagramPacket; import java.net.InetAddress; +import java.net.InetSocketAddress; import java.net.MulticastSocket; import java.net.UnknownHostException; import java.util.ArrayList; @@ -287,22 +290,27 @@ public class PduSender Collections.sort(generatedPdus, new ClassNameComparator()); // Send the PDUs we created + DatagramPacket packet; InetAddress localMulticastAddress = InetAddress.getByName(MULTICAST_ADDRESS); MulticastSocket socket = new MulticastSocket(PORT); - socket.joinGroup(localMulticastAddress); + InetSocketAddress group = new InetSocketAddress(localMulticastAddress, PORT); + socket.joinGroup(group, DisThreadedNetIF.findIp4Interface()); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + DataOutputStream dos = new DataOutputStream(baos); + byte[] buffer; + Pdu aPdu; + for (int idx = 0; idx < generatedPdus.size(); idx++) { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - DataOutputStream dos = new DataOutputStream(baos); - byte[] buffer; - Pdu aPdu = generatedPdus.get(idx); + aPdu = generatedPdus.get(idx); aPdu.marshal(dos); buffer = baos.toByteArray(); - DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, PORT); + packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, PORT); socket.send(packet); System.out.println("Sent PDU of type " + aPdu.getClass().getSimpleName() + " ("+aPdu.getPduType().getValue()+")"); + baos.reset(); } // write the PDUs out to an XML file. @@ -311,7 +319,7 @@ public class PduSender //container.marshallToXml("examplePdus.xml"); } catch (Exception e) { - System.out.println(e); + System.err.println(e); } }