Something went wrong on our end
-
Brutzman, Don authoredBrutzman, Don authored
ConardMulticastSender.java 2.73 KiB
package MV3500Cohort2018JanuaryMarch.homework2;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.MulticastSocket;
/**
* homework assignment
* @author emilyconard
*/
public class ConardMulticastSender
{
/**
* Default constructor to silence javadoc warning
* @see <a href="https://stackoverflow.com/questions/4488716/java-default-constructor" target="_blank">StackOverflow: Java default constructor</a>
*/
public ConardMulticastSender ()
{
// default initializations occur here
}
/** socket value of shared interest */
public static final String MULTICAST_ADDRESS = "239.1.2.15";
/** socket value of shared interest */
public static final int DESTINATION_PORT = 1717;
/** How many routers can be crossed */
static final int TTL = 10;
/**
* Program invocation, execution starts here
* @param args command-line arguments
*/
@SuppressWarnings("deprecation")
public static void main(String[] args)
{
try
{
int ID = 27;
int xcord = 5;
int ycord = 7;
System.setProperty("java.net.preferIPv4Stack", "true");
MulticastSocket multicastSocket = new MulticastSocket(1718);
multicastSocket.setTimeToLive(TTL);
InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
System.out.println(multicastAddress);
// Join group useful on receiving side
multicastSocket.joinGroup(multicastAddress);
// You can join multiple groups here
// 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);
dos.writeInt(ID);
dos.writeInt(xcord);
dos.writeInt(ycord);
byte[] buffer = baos.toByteArray();
DatagramPacket packet = new DatagramPacket(buffer, buffer.length, multicastAddress, DESTINATION_PORT);
for(int idx = 0; idx < 100; idx++)
{
multicastSocket.send(packet);
Thread.sleep(1000); // Send 100, one per second
System.out.println("Sent multicast packet " + idx + " of 100");
}
}
catch(Exception e)
{
System.out.println(e);
}
}
}