Skip to content
Snippets Groups Projects
Commit d1d7935d authored by Brutzman, Don's avatar Brutzman, Don
Browse files

Merge origin/master

parents c84fa156 efcba689
No related branches found
No related tags found
No related merge requests found
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package MV3500Cohort2018JulySeptember.homework3.Loeffelman_Severson_Homework3;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
/**
*
* @author garrettloeffelman
*/
public class LoeffelmanSeversonUDPImageHW3Receiver {
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);
Image image = null;
// You need a new receiving packet to read from every packet received
while (true)
{
byte[] receiveBuffer = new byte[100000];
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());
BufferedImage bimage = ImageIO.read(bais);
if (!udpSocket.isConnected()) {
System.out.println("Test2");
image = bimage;
break;
}
}
JFrame frame = new JFrame();
frame.setSize(300, 300);
JLabel label = new JLabel(new ImageIcon(image));
frame.add(label);
frame.setVisible(true);
udpSocket.close();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
catch(IOException e)
{
System.out.println("Problem with UdpReceiver, see exception trace:");
System.out.println(e);
}
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package MV3500Cohort2018JulySeptember.homework3.Loeffelman_Severson_Homework3;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.URL;
import javax.imageio.ImageIO;
/**
*
* @author garrettloeffelman
*/
public class LoeffelmanSeversonUDPImageSender {
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)
{
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\"");
URL url1 = new URL("https://cdn1.iconfinder.com/data/icons/cute-monkey-emoticon/595/MONKEY_EMOTICON-05-512.png");
URL url2 = new URL("https://images.all-free-download.com/images/graphicthumb/yammi_banana_99225.jpg");
// 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.
BufferedImage image = ImageIO.read(url1);
ImageIO.write(image, "png", baos);
byte[] buffer = baos.toByteArray();
// 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 <= buffer.length; index++) // avoid infinite send loops in code, they can be hard to kill!
{
udpSocket.send(packet);
System.out.println("Sent packet " + index + " of " + buffer.length);
}
System.out.println("UdpSender complete.");
}
catch (IOException 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