/*----------------------------------------------------------------------- McastIU This spits out PDU packets on the given socket and multicast group at a 1Hz rate. --------------------------------------------------------------------------*/ package mil.navy.nps.testing; import mil.navy.nps.dis.*; import mil.navy.nps.disEnumerations.*; import java.io.*; import java.lang.*; import java.net.*; import java.util.*; public class McastIU{ byte outputBuffer[] = new byte[1500]; // buffer to hold datagram data MulticastSocket s ; // socket to spit it out on DatagramPacket dgramPacket; // one datagram packet ByteArrayOutputStream outputStream; DataOutputStream dataOutputStream; byte streamArray[]; int pduSentCount = 0; public InetAddress address; public int port = 62040; public McastIU() { try { address = InetAddress.getByName("224.2.181.145"); s = new MulticastSocket(port); s.joinGroup(address); try { s.setTimeToLive ( 15); // JDK 1.2 System.out.println ("McastIu: ttl = " + s.getTimeToLive ()); } catch (Exception e) { s.setTTL ((byte)15); // Netscape JDK 1.1.5 System.out.println ("McastIu: ttl = " + s.getTTL ()); // Netscape JDK 1.1.5 } } catch (Exception e) { System.err.println(e); } } public void SendMPDU (ProtocolDataUnit pdu) { outputStream = new ByteArrayOutputStream(); dataOutputStream = new DataOutputStream(outputStream); pdu.serialize(dataOutputStream); streamArray = outputStream.toByteArray(); // System.out.println("data serialized to " + streamArray[0] + " and " + streamArray[1]); dgramPacket = new DatagramPacket(outputStream.toByteArray(), outputStream.size(), address, 3111); try{ { s.send(dgramPacket, (byte)5); } pduSentCount++; if(pduSentCount % 10 == 0) { System.out.println("sent " + pduSentCount + " Pdus of type " + (short) pdu.getPduType().intValue()); if ((short) pdu.getPduType().intValue() == PduTypeField.ENTITYSTATE) { System.out.println("espdu entity ID is [" + ((EntityStatePdu)pdu).getEntityID().toString() + "]"); System.out.println("espdu marking is [" + ((EntityStatePdu)pdu).getMarking() + "]"); } System.out.println(""); } }//end try catch (SocketException se) { System.err.println(se); } catch (UnknownHostException e) { System.err.println(e); } catch(IOException ioException) { System.out.println("sent a total of " + pduSentCount + "packets"); } System.out.println(); } //end method }//endclass