diff --git a/deliverables/src/MV3500Cohort2018JulySeptember/homework3/Jackson_UdpReceiver.java b/deliverables/src/MV3500Cohort2018JulySeptember/homework3/Jackson_UdpReceiver.java new file mode 100644 index 0000000000000000000000000000000000000000..b7311cc8d51a7a62c450dccbb2e191c5f61ce7c8 --- /dev/null +++ b/deliverables/src/MV3500Cohort2018JulySeptember/homework3/Jackson_UdpReceiver.java @@ -0,0 +1,52 @@ +package MV3500Cohort2018JulySeptember.homework3; + +import java.io.*; +import java.net.*; +/** + * An example of receiving UDP packets. Since very often both the + * sender and receiver are on the same host we use different ports + * for each. This prevents complaints from the localhost. + * + * @author mcgredo + */ +public class Jackson_UdpReceiver +{ + public static final int SENDING_PORT = 1414; + public static final int RECEIVING_PORT = 1415; + public static final String DESINATION_HOST = "localhost"; + + /** + * @param args the command line arguments + */ + public static void main(String[] args) + { + try + { + System.out.println("UdpReceiver started..."); + // Create a UDP socket + DatagramSocket udpSocket = new DatagramSocket(RECEIVING_PORT); + + // You need a new receiving packet to read from every packet received + while (true) + { + byte[] receiveBuffer = new byte[15000]; + DatagramPacket receivePacket = new DatagramPacket(receiveBuffer, receiveBuffer.length); + udpSocket.receive(receivePacket); + + // Decode the contents by extracting the data from the packet + ByteArrayInputStream bais = new ByteArrayInputStream(receivePacket.getData()); + DataInputStream dis = new DataInputStream(bais); + + // What happens if you read an integer? Two double values? *** + String first = dis.readUTF(); // alternatives: readFloat(); readInt(); dis.readUTF(); + //String second = dis.readUTF(); + System.out.println(first);// + " second value: " + second); + } + } + catch(IOException e) + { + System.out.println("Problem with UdpReceiver, see exception trace:"); + System.out.println(e); + } + } +}