Skip to content
Snippets Groups Projects
Commit f0920930 authored by bweissenbergergy's avatar bweissenbergergy
Browse files

initial commit final project

09/03/2020
parent 1d89d0b9
No related branches found
No related tags found
No related merge requests found
package MV3500Cohort2020JulySeptember.homework4.Weissenberger;
package MV3500Cohort2020JulySeptember.homework4.WeissenbergerGoericke;
import java.io.IOException;
import java.io.OutputStream;
......
package MV3500Cohort2020JulySeptember.homework4.Weissenberger;
package MV3500Cohort2020JulySeptember.homework4.WeissenbergerGoericke;
import java.io.*;
import java.net.*;
......@@ -24,6 +24,9 @@ import java.net.*;
*/
public class TcpServerForFinal {
public static final String DEST_INET_AD = "127.0.0.1";
public static final String LOCAL_WIFI_INET = "192.168.188.106";
public static void main(String[] args) {
try {
......@@ -33,7 +36,7 @@ public class TcpServerForFinal {
System.out.println("TcpExample3Server has started..."); // it helps debugging to put this on console first
//ServerSocket serverSocket = new ServerSocket(2317);
InetAddress[] ia = InetAddress.getAllByName("192.168.188.106");
InetAddress[] ia = InetAddress.getAllByName(LOCAL_WIFI_INET);
for (int i = 0;i < ia.length; i++){
System.out.println("---: "+ia[i]);
}
......@@ -78,6 +81,7 @@ public class TcpServerForFinal {
System.out.println("TcpExample3Server socket pair showing host name, address, port:");
}
sendResultViaUDP(serverMessage);
}
} catch (IOException e) {
System.err.println("Problem with TcpExample3Server networking: " + e);
......@@ -88,4 +92,61 @@ public class TcpServerForFinal {
}
}
}
/**
* send the result to Stefan 2x
* @param result
* @param inetAddress Stefans's IP
* @param port Stefans's UDP port number
* @throws IOException
*/
private static void sendResultViaUDP(String result) throws IOException{
DatagramSocket udpSocket = null;
DataOutputStream dos = null;
try
{
// Create a UDP socket
udpSocket = new DatagramSocket(); // let system assign output port, then SENDING_PORT not needed
// 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(1500); // how many bytes are in buffer? MTU=1500 is good
dos = new DataOutputStream(baos); // wrapper for writing values, connects both streams
// Put together a packet to send
// these types and order of variables must match on sender and receiver
byte[] byteArray = baos.toByteArray();
InetAddress destinationAddress = InetAddress.getByName(DEST_INET_AD);
DatagramPacket datagramPacket = new DatagramPacket(byteArray, byteArray.length, destinationAddress, 1415);
for (int index = 1; index <= 2; index++)
{
dos.writeUTF (result);
dos.flush(); // sends DataOutputStream to ByteArrayOutputStream
byteArray = baos.toByteArray(); // OK so go get the flushed result...
datagramPacket.setData(byteArray); // and put it in the packet...
udpSocket.send(datagramPacket); // and send it away. boom gone, nonblocking.
Thread.sleep(1000); // Send packets at rate of one per second
baos.reset(); // clear the output stream after sending
}
dos.close();
}
catch (IOException | InterruptedException e)
{
System.err.println("Problem with UdpSender, see exception trace:");
System.err.println(e);
}
finally // clean up prior to exit, don't want to leave behind zombies
{
if (udpSocket != null)
udpSocket.close();
if (dos != null)
dos.close();
}
}
}
package MV3500Cohort2020JulySeptember.homework4.Weissenberger;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
/**
* This class will be connected by an UDP sender over VPN (argon)
* @date 09/02/2020
* @author Loki
* @group Weissenberger/Goericke
*/
public class UDPResultReceiver {
public static final int RECEIVING_PORT = 1415;
/**
* @param args the command line arguments
* @throws java.io.IOException
*/
public static void main(String[] args) throws IOException
{
DatagramSocket udpSocket = null;
try
{
System.out.println(UDPResultReceiver.class.getName() + " started...");
// Create a UDP socket
udpSocket = new DatagramSocket(RECEIVING_PORT);
udpSocket.setReceiveBufferSize(1500); // how many bytes are in buffer? MTU=1500 is good
udpSocket.setBroadcast(false); // we're just receiving here
byte[] byteArray = new byte[1500];
DatagramPacket receivePacket = new DatagramPacket(byteArray, byteArray.length);
ByteArrayInputStream bais = new ByteArrayInputStream(byteArray);
DataInputStream dis = new DataInputStream(bais);
String received;
// You need a new receiving packet to read from every packet received
while (true)
{
udpSocket.receive(receivePacket); // blocks until packet is received
received = dis.readUTF();
dis.reset(); // now clear the input stream after reading, in preparation for next loop
System.out.println("Received from Bernd: "+received);
}
}
catch(IOException e)
{
System.err.println("Problem with UdpReceiver, see exception trace:");
System.err.println(e);
}
finally // clean up prior to exit, don't want to leave behind zombie socket
{
if (udpSocket != null)
udpSocket.close();
System.out.println(UDPResultReceiver.class.getName() + " complete."); // all done
}
}
}
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