Skip to content
Snippets Groups Projects
Commit 4f967199 authored by jonathanboron's avatar jonathanboron
Browse files

HW4 update, random entity state PDUs generated

parent 3b3f20d9
No related branches found
No related tags found
No related merge requests found
...@@ -15,7 +15,7 @@ public class BoronEntityStatePduCreator { ...@@ -15,7 +15,7 @@ public class BoronEntityStatePduCreator {
*/ */
public BoronEntityStatePduCreator(){} public BoronEntityStatePduCreator(){}
public void newPDU(short s, ForceID fid, double [] l, float[] v, float[] o) public EntityStatePdu newPDU(short s, ForceID fid, double [] l, float[] v, float[] o)
{ {
//Create new entity state PDU and set ID and Force ID //Create new entity state PDU and set ID and Force ID
EntityStatePdu newPdu = new EntityStatePdu(); EntityStatePdu newPdu = new EntityStatePdu();
...@@ -45,7 +45,7 @@ public class BoronEntityStatePduCreator { ...@@ -45,7 +45,7 @@ public class BoronEntityStatePduCreator {
orientation.setTheta(o[2]); orientation.setTheta(o[2]);
newPdu.setEntityOrientation(orientation); newPdu.setEntityOrientation(orientation);
return newPdu;
} }
} }
...@@ -24,15 +24,16 @@ public class BoronPduSender ...@@ -24,15 +24,16 @@ public class BoronPduSender
public static final int DEFAULT_MULTICAST_PORT = 3000; public static final int DEFAULT_MULTICAST_PORT = 3000;
private int port; private int port;
private Random rand;
InetAddress multicastAddress; InetAddress multicastAddress;
public BoronPduSender(int port, String multicast) { public BoronPduSender(int port, String multicast) {
try try
{ {
this.port = port; this.port = port;
multicastAddress = InetAddress.getByName(multicast); multicastAddress = InetAddress.getByName(multicast);
if (!multicastAddress.isMulticastAddress()) if (!multicastAddress.isMulticastAddress())
{ {
System.out.println("Not a multicast address: " + multicast); System.out.println("Not a multicast address: " + multicast);
} }
} }
...@@ -42,392 +43,83 @@ public class BoronPduSender ...@@ -42,392 +43,83 @@ public class BoronPduSender
} }
public void run() public void run()
{ {
System.out.println("DisExamplesOpenDis7.AllPduSender started..."); BoronEntityStatePduCreator espduCreator = new BoronEntityStatePduCreator();
rand = new Random();
System.out.println("DisExamplesOpenDis7.AllPduSender started...");
System.out.println("Generate PDUs and note issues, if any...");
List<Pdu> generatedPdusList = new ArrayList<>();
for (int i = 0; i < 3; i++)
{
short id = (short)rand.nextInt(10000);
double[] l = new double[]
{
rand.nextInt(10) + rand.nextDouble(),
rand.nextInt(10) + rand.nextDouble(),
rand.nextInt(10) + rand.nextDouble()
};
float[] v = new float[]
{
rand.nextFloat(),
rand.nextFloat(),
rand.nextFloat()
};
float[] o = new float[]
{
rand.nextFloat(),
rand.nextFloat(),
rand.nextFloat()
};
generatedPdusList.add(espduCreator.newPDU(id, ForceID.FRIENDLY, l, v, o));
}
// Send the PDUs we created
System.out.println("Send the " + generatedPdusList.size() + " PDUs we created...");
try try
{ {
System.out.println("Generate PDUs and note issues, if any...");
List<Pdu> generatedPdusList = new ArrayList<>();
// Loop through all the enumerated PDU types, create a PDU for each type,
// add that PDU to generatedPdusList, and send each one
for (DISPDUType pdu : DISPDUType.values())
{
// System.out.println("PDU " + pdu.getValue() + " " + pdu.name() + " " + pdu.getDescription()); // diagnostic
Pdu aPdu = null; // edu.​nps.​moves7.​dis.PDU superclass for all PDUs, in preparation for custom assignment
try {
switch (pdu) // using enumeration values from edu.​nps.​moves.​dis7.​enumerations.​DISPDUType
{
case OTHER: // 0
System.out.println ("*** Note: DISPDUType." + pdu.name() + " not supported"); // TODO why was this received?
// nothing to send
break;
case ENTITY_STATE: // 1
aPdu = new EntityStatePdu();
EntityStatePdu espdu = (EntityStatePdu) aPdu;
EntityMarking entityMarking = new EntityMarking ();
entityMarking.setCharacters("AllPduSender".getBytes()); //entityMarking.setCharacters(Byte.valueOf("0")); // 11 characters max?
espdu.setMarking(entityMarking);
Vector3Double espduLocation = new Vector3Double();
espduLocation.setX(1.0);
espduLocation.setY(2.0);
espduLocation.setZ(3.0);
espdu.setEntityLocation(espduLocation);
// it is important to identify questions as you think of them
// TODO how to set azimuth, i.e. course direction over ground?
break;
case FIRE: // 2
aPdu = new FirePdu();
break;
case DETONATION: // 3
aPdu = new DetonationPdu();
break;
case COLLISION: // 4
aPdu = new CollisionPdu();
break;
case SERVICE_REQUEST: // 5
aPdu = new ServiceRequestPdu();
break;
case RESUPPLY_OFFER: // 6
aPdu = new ResupplyOfferPdu();
break;
case RESUPPLY_RECEIVED: // 7
aPdu = new ResupplyReceivedPdu();
break;
case RESUPPLY_CANCEL: //8
aPdu = new ResupplyCancelPdu();
break;
case REPAIR_COMPLETE: // 9
aPdu = new RepairCompletePdu();
break;
case REPAIR_RESPONSE: // 10
aPdu = new RepairResponsePdu();
break;
case CREATE_ENTITY: // 11
aPdu = new CreateEntityPdu();
break;
case REMOVE_ENTITY: // 12
aPdu = new RemoveEntityPdu();
break;
case START_RESUME: // 13
aPdu = new StartResumePdu();
break;
case STOP_FREEZE: // 14
aPdu = new StopFreezePdu();
break;
case ACKNOWLEDGE: // 15
aPdu = new AcknowledgePdu();
break;
case ACTION_REQUEST: // 16
aPdu = new ActionRequestPdu();
break;
case ACTION_RESPONSE: // 17
aPdu = new ActionResponsePdu();
break;
case DATA_QUERY: // 18
aPdu = new DataQueryPdu();
break;
case SET_DATA: // 19
aPdu = new SetDataPdu();
break;
case DATA: // 20
aPdu = new DataPdu();
break;
case EVENT_REPORT: // 21
aPdu = new EventReportPdu();
break;
case ELECTROMAGNETIC_EMISSION: // 23
aPdu = new ElectromagneticEmissionPdu();
break;
case DESIGNATOR: // 24
aPdu = new DesignatorPdu();
break;
case TRANSMITTER: // 25
aPdu = new TransmitterPdu();
break;
case SIGNAL: // 26
aPdu = new SignalPdu();
break;
case RECEIVER: // 27
aPdu = new ReceiverPdu();
break;
case IDENTIFICATION_FRIEND_OR_FOE: // 28
aPdu = new IdentificationFriendOrFoePdu();
break;
case UNDERWATER_ACOUSTIC: // 29
aPdu = new UnderwaterAcousticPdu();
break;
case SUPPLEMENTAL_EMISSION_ENTITY_STATE: // 30
aPdu = new SupplementalEmissionEntityStatePdu();
break;
case INTERCOM_SIGNAL: // 31
aPdu = new IntercomSignalPdu();
break;
case INTERCOM_CONTROL: // 32
aPdu = new IntercomControlPdu();
break;
case AGGREGATE_STATE: // 33
aPdu = new AggregateStatePdu();
break;
case ISGROUPOF: // 34
aPdu = new IsGroupOfPdu();
break;
case TRANSFER_OWNERSHIP: // 35
aPdu = new TransferOwnershipPdu();
break;
case ISPARTOF: // 36
aPdu = new IsPartOfPdu();
break;
case MINEFIELD_STATE: // 37
aPdu = new MinefieldStatePdu();
break;
case MINEFIELD_QUERY: // 38
aPdu = new MinefieldQueryPdu();
break;
case MINEFIELD_DATA: // 39
aPdu = new MinefieldDataPdu();
break;
case MINEFIELD_RESPONSE_NACK: // 40
aPdu = new MinefieldResponseNACKPdu();
break;
case ENVIRONMENTAL_PROCESS: // 41
aPdu = new EnvironmentalProcessPdu();
break;
case GRIDDED_DATA: // 42
aPdu = new GriddedDataPdu();
break;
case POINT_OBJECT_STATE: // 43
aPdu = new PointObjectStatePdu();
break;
case LINEAR_OBJECT_STATE: // 44
aPdu = new LinearObjectStatePdu();
break;
case AREAL_OBJECT_STATE: // 45
aPdu = new ArealObjectStatePdu();
break;
case TIME_SPACE_POSITION_INFORMATION: // 46
aPdu = new TimeSpacePositionInformationPdu();
break;
case APPEARANCE: // 47
aPdu = new AppearancePdu();
break;
case ARTICULATED_PARTS: // 48
aPdu = new ArticulatedPartsPdu();
break;
case LIVE_ENTITY_FIRE: // 49
aPdu = new LiveEntityFirePdu();
break;
case LIVE_ENTITY_DETONATION: // 50
aPdu = new LiveEntityDetonationPdu();
break;
case CREATE_ENTITY_RELIABLE: // 51
aPdu = new CreateEntityReliablePdu();
break;
case REMOVE_ENTITY_RELIABLE: // 52
aPdu = new RemoveEntityReliablePdu();
break;
case START_RESUME_RELIABLE: // 53
aPdu = new StartResumeReliablePdu();
break;
case STOP_FREEZE_RELIABLE: // 54
aPdu = new StopFreezeReliablePdu();
break;
case ACKNOWLEDGE_RELIABLE: // 55
aPdu = new AcknowledgeReliablePdu();
break;
case ACTION_REQUEST_RELIABLE: // 56
aPdu = new ActionRequestReliablePdu();
break;
case ACTION_RESPONSE_RELIABLE: // 57
aPdu = new ActionResponseReliablePdu();
break;
case DATA_QUERY_RELIABLE: // 58
aPdu = new DataQueryReliablePdu();
break;
case SET_DATA_RELIABLE: // 59
aPdu = new SetDataReliablePdu();
break;
case DATA_RELIABLE: // 60
aPdu = new DataReliablePdu();
break;
case EVENT_REPORT_RELIABLE: // 61
aPdu = new EventReportReliablePdu();
break;
case COMMENT_RELIABLE: // 62
aPdu = new CommentReliablePdu();
break;
case RECORD_RELIABLE: // 63
aPdu = new RecordReliablePdu();
break;
case SET_RECORD_RELIABLE: // 64
aPdu = new SetRecordReliablePdu();
break;
case RECORD_QUERY_RELIABLE: // 65
aPdu = new RecordQueryReliablePdu();
break;
case COLLISION_ELASTIC: // 66
aPdu = new CollisionElasticPdu();
break;
case ENTITY_STATE_UPDATE: // 67
aPdu = new EntityStateUpdatePdu();
break;
case DIRECTED_ENERGY_FIRE: // 68
aPdu = new DirectedEnergyFirePdu();
break;
case ENTITY_DAMAGE_STATUS: // 69
aPdu = new EntityDamageStatusPdu();
break;
case INFORMATION_OPERATIONS_ACTION: // 70
aPdu = new InformationOperationsActionPdu();
break;
case INFORMATION_OPERATIONS_REPORT: // 71
aPdu = new InformationOperationsReportPdu();
break;
case ATTRIBUTE: // 72
aPdu = new AttributePdu();
break;
case COMMENT:
aPdu = new CommentPdu();
CommentPdu newCommentPdu = (CommentPdu)aPdu;
VariableDatum newVariableDatum = new VariableDatum();
// etc. see Garrett and Pete's code
break;
default:
System.out.println("*** Warning: PDU " + pdu.getValue() + " " + pdu + " not supported, created or sent ");
// code generation block for this class follows:
// System.out.println(" case " + pdu + ": // " + pdu.getValue());
// System.out.println(" aPdu = new " + pdu.getDescription().replace(" ","").replace("-","").replace("/","") +
// "Pdu();");
// System.out.println(" break;");
// System.out.println();
}
if (aPdu != null)
{
generatedPdusList.add(aPdu);
}
}
catch (Exception e)
{
System.out.print("Exception thrown for PDU " + pdu.getValue() + " " + pdu);
System.out.print(Arrays.toString(e.getStackTrace()));
// continue looping
}
}
// Send the PDUs we created
System.out.println("Send the " + generatedPdusList.size() + " PDUs we created...");
InetAddress localMulticastAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS); InetAddress localMulticastAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
MulticastSocket socket = new MulticastSocket(DEFAULT_MULTICAST_PORT); MulticastSocket socket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
socket.joinGroup(localMulticastAddress); socket.joinGroup(localMulticastAddress);
for (int idx = 0; idx < generatedPdusList.size(); idx++) for (int idx = 0; idx < generatedPdusList.size(); idx++)
{ {
Pdu aPdu = generatedPdusList.get(0);
ByteArrayOutputStream baos = new ByteArrayOutputStream(); ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos); DataOutputStream dos = new DataOutputStream(baos);
byte[] buffer; byte[] buffer;
Pdu aPdu = generatedPdusList.get(idx); //Pdu aPdu = generatedPdusList.get(idx);
aPdu.marshal(dos); aPdu.marshal(dos);
buffer = baos.toByteArray(); buffer = baos.toByteArray();
DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT); DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT);
socket.send(packet); socket.send(packet);
try { try
{
Thread.sleep(100L); Thread.sleep(100L);
} catch (InterruptedException ex) { } catch (InterruptedException ex) {
} }
String currentPduTypeValuePadded = String.format("%2s", aPdu.getPduType().getValue()); String currentPduTypeValuePadded = String.format("%2s", aPdu.getPduType().getValue());
String currentPduTypePadded = String.format("%-34s", aPdu.getPduType()); // - indicates right padding of whitespace String currentPduTypePadded = String.format("%-34s", aPdu.getPduType()); // - indicates right padding of whitespace
System.out.print ("Sent DIS PDU " + currentPduTypeValuePadded + " " + currentPduTypePadded ); System.out.print ("Sent DIS PDU " + currentPduTypeValuePadded + " " + currentPduTypePadded );
System.out.println(" of type " + aPdu.getClass().getName()); System.out.println(" of type " + aPdu.getClass().getName());
generatedPdusList.remove(0);
} }
}
catch (IOException e)
{
System.out.println(e);
}
// write the PDUs out to an XML file. // write the PDUs out to an XML file.
//PduContainer container = new PduContainer(); //PduContainer container = new PduContainer();
//container.setPdus(generatedPdus); //container.setPdus(generatedPdus);
//container.marshallToXml("examplePdus.xml"); //container.marshallToXml("examplePdus.xml");
}
catch (IOException e)
{
System.out.println(e);
}
} }
public static void main(String args[]) public static void main(String args[])
......
!Begin!Beginning of DIS capture file, Pdusave.dislog.
AAAAAAAAAAA=,BwABAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AAAAAAAABAAAAAAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGR1U2VuZGVyAAAAAAAA
AAAAAAYnFzQ=,BwACAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAw5/E8=,BwADAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
AAAAABKCawU=,BwAEAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAABiMUWQ=,BwAFAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAB6asAg=,BwAGAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAACSXtxQ=,BwAHAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAACqX8i4=,BwAIAwAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAADDRnIQ=,BwAJAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAADb3s8o=,BwAKAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAADzy22g=,BwALBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAELsRqI=,BwAMBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAEkaZQA=,BwANBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
AAAAAE8Zchw=,BwAOBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAFUU0zM=,BwAPBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA=
AAAAAFsSSvE=,BwAQBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAGE0Lkc=,BwARBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAGc7eF0=,BwASBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAG03klE=,BwATBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAHNuKsw=,BwAUBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAHl5GbY=,BwAVBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAH91lnQ=,BwAWBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
AAAAAIV3UWE=,BwAXBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAIuOHwY=,BwAYBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAJGdNv0=,BwAZBAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
AAAAAJfnTYY=,BwAaBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
AAAAAJ4RUCo=,BwAbBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAKQazdY=,BwAcBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAKoegIg=,BwAdBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
AAAAALAdxIU=,BwAeBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAALZLcJ8=,BwAfBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
AAAAALxLoN0=,BwAgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAMJ9SG8=,BwAhBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAMjEzAs=,BwAiBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAM7mLcU=,BwAjBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAANThoJ8=,BwAkBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAANryOl0=,BwAlCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAOEzux4=,BwAmCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAOc9h5g=,BwAnCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
AAAAAO18gEQ=,BwAoCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
AAAAAPOvR4k=,BwApCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
AAAAAPn3c9k=,BwAqCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAP//c20=,BwArCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAQYmvvs=,BwAsCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAQxQNCE=,BwAtCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAARKDbMU=,BwAuCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
AAAAARiLxXs=,BwAvCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAR6npnw=,BwAwCwAAAAAAAAAAAAAAAAAAAA==
AAAAASSkFmg=,BwAxCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAASrpb2I=,BwAyCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAATDlQzc=,BwAzCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
AAAAATcMq64=,BwA0CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
AAAAAT1C2gg=,BwA1CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAUNKcTk=,BwA2CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAUlFpjk=,BwA3CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA=
AAAAAU97BG8=,BwA4CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
AAAAAVWi3zA=,BwA5CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAVudhts=,BwA6CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
AAAAAWGYUyo=,BwA7CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAWeRZGM=,BwA8CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAW2UY50=,BwA9CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAXOOj50=,BwA+CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
AAAAAXmm8+A=,BwA/CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAX+h584=,BwBACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAYXHvNI=,BwBBCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAYvN+fw=,BwBCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAZHltOI=,BwBDAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAZfoBJ0=,BwBEAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAZ4pFTg=,BwBFAgAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAaRMhhA=,BwBGDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
AAAAAapH1Hk=,BwBHDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
AAAAAbBCcZM=,BwBIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6QAAAAA=
!End!End of DIS capture file, Pdusave.dislog.
...@@ -44,19 +44,19 @@ public class TcpExample3Server { ...@@ -44,19 +44,19 @@ public class TcpExample3Server {
while (true) { while (true) {
// block until connected to a client // block until connected to a client
try (Socket clientConnection = serverSocket.accept()) { try (Socket clientConnectionSocket = serverSocket.accept()) {
// Now hook everything up (i.e. set up the streams), Java style: // Now hook everything up (i.e. set up the streams), Java style:
os = clientConnection.getOutputStream(); os = clientConnectionSocket.getOutputStream();
ps = new PrintStream(os); ps = new PrintStream(os);
ps.println("This message was produced by the server."); // this gets sent back to client! ps.println("This message was produced by the server."); // this gets sent back to client!
// Print some information locally about the Socket connection. // Print some information locally about the Socket connection.
// This includes the port and IP numbers on both sides (the socket pair). // This includes the port and IP numbers on both sides (the socket pair).
localAddress = clientConnection.getLocalAddress(); localAddress = clientConnectionSocket.getLocalAddress();
remoteAddress = clientConnection.getInetAddress(); remoteAddress = clientConnectionSocket.getInetAddress();
localPort = clientConnection.getLocalPort(); localPort = clientConnectionSocket.getLocalPort();
remotePort = clientConnection.getPort(); remotePort = clientConnectionSocket.getPort();
// My socket pair connection looks like this, to localhost: // My socket pair connection looks like this, to localhost:
// Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 )) // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 ))
......
...@@ -20,7 +20,7 @@ public class MulticastReceiver { ...@@ -20,7 +20,7 @@ public class MulticastReceiver {
/** Time to live: how many router-decrement levels can be crossed */ /** Time to live: how many router-decrement levels can be crossed */
public static final int TTL = 10; public static final int TTL = 10;
final private static boolean infiniteReadLoop = false; final private static boolean infiniteReadLoop = true;
public static void main(String[] args) public static void main(String[] args)
{ {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment