Skip to content
Snippets Groups Projects
Commit 8b18ba9b authored by Jackson, John (LT)'s avatar Jackson, John (LT)
Browse files

HW3 submission

parent f81619b3
No related branches found
No related tags found
No related merge requests found
package MV3500Cohort2018JulySeptember.homework3;
import java.io.*;
import java.net.*;
/**
* An example of sending UDP packets. The sending and receiving programs
* use different UDP ports; there can be problems getting this to work
* if both the sending and receiving sockets try to use the same port
* on the same host.
*
* @author mcgredo
*/
public class Jackson_UdpSender
{
public static final int SENDING_PORT = 1414;
public static final int RECEIVING_PORT = 1415;
public static final String DESTINATION_HOST = "localhost";
@SuppressWarnings("SleepWhileInLoop")
public static void main(String[] args)
{
//int idx = 0;
String[] preamble = new String[10];
preamble[0] = " We the People of the United States, ";
preamble[1] = " in Order to form a more perfect Union, ";
preamble[2] = " establish Justice, ";
preamble[3] = " insure domestic Tranquility, ";
preamble[4] = " provide for the common defence,";
preamble[5] = " promote the general Welfare, ";
preamble[6] = " and secure the Blessings of Liberty ";
preamble[7] = " to ourselves and our Posterity, ";
preamble[8] = " do ordain and establish this Constitution ";
preamble[9] = " for the United States of America.";
try
{
System.out.println("UdpSender started...");
// Create a UDP socket
DatagramSocket udpSocket = new DatagramSocket(SENDING_PORT);
// Put together a message with binary content. "ByteArrayOutputStream"
// is a java.io utility that lets us put together an array of binary
// data, which we put into the UDP packet.
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
// alternatives: writeFloat(17.0f); writeInt(17); writeUTF("\"hello MV3500 no really\"");
// Put together a packet to send
// ID of the host we are sending to
InetAddress destinationAddress = InetAddress.getByName(DESTINATION_HOST);
//DatagramPacket packet = new DatagramPacket(buffer, buffer.length, destinationAddress, RECEIVING_PORT );
// How fast does this go? Does UDP try to slow it down, or does
// this cause network problems? (hint: yes for an unlimited send
// rate, unlike TCP). How do you know on the receiving side
// that you haven't received a duplicate UDP packet, out of
// order packet, or dropped packet?
for (int index = 1; index <= 10; index++) // avoid infinite send loops in code, they can be hard to kill!
{
dos.writeChars(preamble[index-1]);
byte[] buffer = baos.toByteArray();
DatagramPacket packet = new DatagramPacket(buffer, buffer.length, destinationAddress, RECEIVING_PORT );
udpSocket.send(packet);
Thread.sleep(100); // Send 100, one per second
System.out.println("Sent packet " + index + " of 10");
}
System.out.println("UdpSender complete.");
}
catch (IOException | InterruptedException e)
{
System.out.println("Problem with UdpSender, see exception trace:");
System.out.println(e);
}
}
}
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