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 
{
    /** socket parameter of interest */
    public static final int       SENDING_PORT = 1414;
    /** socket parameter of interest */
    public static final int     RECEIVING_PORT = 1415;
    /** socket parameter of interest */
    public static final String DESINATION_HOST = "localhost";

    /**
     * @param args 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);
        }
    }
}