From a66e418cb3eba77d260e5a6ae2c1c43fdfa24857 Mon Sep 17 00:00:00 2001 From: Sebastian Rieger Date: Tue, 24 Oct 2017 23:19:00 +0200 Subject: [PATCH] initial example set --- VerteilteSysteme-Examples/.classpath | 6 +++ VerteilteSysteme-Examples/.gitignore | 1 + VerteilteSysteme-Examples/.project | 17 ++++++++ .../.settings/org.eclipse.jdt.core.prefs | 11 +++++ .../socket/simple/TCPClient.java | 27 ++++++++++++ .../socket/simple/TCPServer.java | 28 +++++++++++++ .../socket/simple/UDPClient.java | 30 +++++++++++++ .../socket/simple/UDPServer.java | 29 +++++++++++++ .../timecounter/UDPTimeCounterClient.java | 42 +++++++++++++++++++ .../timecounter/UDPTimeCounterServer.java | 35 ++++++++++++++++ 10 files changed, 226 insertions(+) create mode 100644 VerteilteSysteme-Examples/.classpath create mode 100644 VerteilteSysteme-Examples/.gitignore create mode 100644 VerteilteSysteme-Examples/.project create mode 100644 VerteilteSysteme-Examples/.settings/org.eclipse.jdt.core.prefs create mode 100644 VerteilteSysteme-Examples/src/verteiltesysteme/socket/simple/TCPClient.java create mode 100644 VerteilteSysteme-Examples/src/verteiltesysteme/socket/simple/TCPServer.java create mode 100644 VerteilteSysteme-Examples/src/verteiltesysteme/socket/simple/UDPClient.java create mode 100644 VerteilteSysteme-Examples/src/verteiltesysteme/socket/simple/UDPServer.java create mode 100644 VerteilteSysteme-Examples/src/verteiltesysteme/socket/timecounter/UDPTimeCounterClient.java create mode 100644 VerteilteSysteme-Examples/src/verteiltesysteme/socket/timecounter/UDPTimeCounterServer.java diff --git a/VerteilteSysteme-Examples/.classpath b/VerteilteSysteme-Examples/.classpath new file mode 100644 index 0000000..e461bea --- /dev/null +++ b/VerteilteSysteme-Examples/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/VerteilteSysteme-Examples/.gitignore b/VerteilteSysteme-Examples/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/VerteilteSysteme-Examples/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/VerteilteSysteme-Examples/.project b/VerteilteSysteme-Examples/.project new file mode 100644 index 0000000..04b758a --- /dev/null +++ b/VerteilteSysteme-Examples/.project @@ -0,0 +1,17 @@ + + + VerteilteSysteme-Examples + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/VerteilteSysteme-Examples/.settings/org.eclipse.jdt.core.prefs b/VerteilteSysteme-Examples/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..bb35fa0 --- /dev/null +++ b/VerteilteSysteme-Examples/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,11 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/VerteilteSysteme-Examples/src/verteiltesysteme/socket/simple/TCPClient.java b/VerteilteSysteme-Examples/src/verteiltesysteme/socket/simple/TCPClient.java new file mode 100644 index 0000000..21e7997 --- /dev/null +++ b/VerteilteSysteme-Examples/src/verteiltesysteme/socket/simple/TCPClient.java @@ -0,0 +1,27 @@ +/* Angelehnt an Kurose/Ross Computernetzwerke (bis 5e Java, ab 6e Python) */ + +package verteiltesysteme.socket.simple; + +import java.io.*; +import java.net.*; + +class TCPClient { + public static void main(String argv[]) throws Exception { + String hostname = "localhost"; + int tcpPort = 36037; + String sentence; + String modifiedSentence; + + BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); + Socket clientSocket = new Socket(hostname, tcpPort); + + DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream()); + BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); + + sentence = inFromUser.readLine(); + outToServer.writeBytes(sentence + '\n'); + modifiedSentence = inFromServer.readLine(); + System.out.println("FROM SERVER: " + modifiedSentence); + clientSocket.close(); + } +} diff --git a/VerteilteSysteme-Examples/src/verteiltesysteme/socket/simple/TCPServer.java b/VerteilteSysteme-Examples/src/verteiltesysteme/socket/simple/TCPServer.java new file mode 100644 index 0000000..fe6a024 --- /dev/null +++ b/VerteilteSysteme-Examples/src/verteiltesysteme/socket/simple/TCPServer.java @@ -0,0 +1,28 @@ +/* Angelehnt an Kurose/Ross Computernetzwerke (bis 5e Java, ab 6e Python) */ + +package verteiltesysteme.socket.simple; + +import java.io.*; +import java.net.*; + +class TCPServer { + public static void main(String argv[]) throws Exception { + int tcpPort = 36037; + String clientSentence; + String capitalizedSentence; + + // Server-Socket erzeugen + ServerSocket welcomeSocket = new ServerSocket(tcpPort); + + while (true) { + Socket connectionSocket = welcomeSocket.accept(); + + BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream())); + DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream()); + + clientSentence = inFromClient.readLine(); + capitalizedSentence = clientSentence.toUpperCase() + '\n'; + outToClient.writeBytes(capitalizedSentence); + } + } +} diff --git a/VerteilteSysteme-Examples/src/verteiltesysteme/socket/simple/UDPClient.java b/VerteilteSysteme-Examples/src/verteiltesysteme/socket/simple/UDPClient.java new file mode 100644 index 0000000..ef609dd --- /dev/null +++ b/VerteilteSysteme-Examples/src/verteiltesysteme/socket/simple/UDPClient.java @@ -0,0 +1,30 @@ +/* Angelehnt an Kurose/Ross Computernetzwerke (bis 5e Java, ab 6e Python) */ + +package verteiltesysteme.socket.simple; + +import java.io.*; +import java.net.*; + +class UDPClient { + public static void main(String args[]) throws Exception { + String hostname = "localhost"; + int udpPort = 36037; + BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); + DatagramSocket clientSocket = new DatagramSocket(); + InetAddress IPAddress = InetAddress.getByName(hostname); + byte[] sendData = new byte[1024]; + byte[] receiveData = new byte[1024]; + + String sentence = inFromUser.readLine(); + sendData = sentence.getBytes(); + + DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, udpPort); + clientSocket.send(sendPacket); + DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); + clientSocket.receive(receivePacket); + + String modifiedSentence = new String(receivePacket.getData()); + System.out.println("FROM UDP SERVER:" + modifiedSentence); + clientSocket.close(); + } +} diff --git a/VerteilteSysteme-Examples/src/verteiltesysteme/socket/simple/UDPServer.java b/VerteilteSysteme-Examples/src/verteiltesysteme/socket/simple/UDPServer.java new file mode 100644 index 0000000..4c9d1fa --- /dev/null +++ b/VerteilteSysteme-Examples/src/verteiltesysteme/socket/simple/UDPServer.java @@ -0,0 +1,29 @@ +/* Angelehnt an Kurose/Ross Computernetzwerke (bis 5e Java, ab 6e Python) */ + +package verteiltesysteme.socket.simple; + +import java.io.*; +import java.net.*; + +class UDPServer { + public static void main(String args[]) throws Exception { + int udpPort = 36037; + DatagramSocket serverSocket = new DatagramSocket(udpPort); + byte[] receiveData = new byte[1024]; + byte[] sendData = new byte[1024]; + + while (true) { + DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); + serverSocket.receive(receivePacket); + String sentence = new String(receivePacket.getData(), 0, receivePacket.getLength()); + + InetAddress IPAddress = receivePacket.getAddress(); + int clientSrcPort = receivePacket.getPort(); + + String capitalizedSentence = sentence.toUpperCase(); + sendData = capitalizedSentence.getBytes(); + DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, clientSrcPort); + serverSocket.send(sendPacket); + } + } +} diff --git a/VerteilteSysteme-Examples/src/verteiltesysteme/socket/timecounter/UDPTimeCounterClient.java b/VerteilteSysteme-Examples/src/verteiltesysteme/socket/timecounter/UDPTimeCounterClient.java new file mode 100644 index 0000000..1ac3200 --- /dev/null +++ b/VerteilteSysteme-Examples/src/verteiltesysteme/socket/timecounter/UDPTimeCounterClient.java @@ -0,0 +1,42 @@ +package verteiltesysteme.socket.timecounter; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.DatagramPacket; +import java.net.DatagramSocket; +import java.net.InetAddress; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Date; + +class UDPTimeCounterClient { + public static void main(String args[]) throws Exception { + String hostname = "192.168.73.158"; + int udpPort = 36038; + BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); + DatagramSocket clientSocket = new DatagramSocket(); + InetAddress IPAddress = InetAddress.getByName(hostname); + byte[] sendData = new byte[1024]; + byte[] receiveData = new byte[1024]; + DateFormat df = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); + + System.out.println("Bitte geben Sie eine Zahl ein: "); + Long number = new Long(inFromUser.readLine()); + sendData = number.toString().getBytes(); + + System.out.println(System.lineSeparator()); + System.out.println("Zeit vor Versand = " + System.currentTimeMillis() + " " + df.format(new Date(System.currentTimeMillis()))); + DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, udpPort); + clientSocket.send(sendPacket); + System.out.println("Zeit nach Versand = " + System.currentTimeMillis() + " " + df.format(new Date(System.currentTimeMillis()))); + DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); + clientSocket.receive(receivePacket); + System.out.println("Zeit nach Empfang = " + System.currentTimeMillis() + " " + df.format(new Date(System.currentTimeMillis()))); + System.out.println(System.lineSeparator()); + + String result = new String(receivePacket.getData()); + System.out.println("Ausgabe vom Server:" + System.lineSeparator() + result); + System.out.println(System.lineSeparator()); + clientSocket.close(); + } +} diff --git a/VerteilteSysteme-Examples/src/verteiltesysteme/socket/timecounter/UDPTimeCounterServer.java b/VerteilteSysteme-Examples/src/verteiltesysteme/socket/timecounter/UDPTimeCounterServer.java new file mode 100644 index 0000000..f1c9857 --- /dev/null +++ b/VerteilteSysteme-Examples/src/verteiltesysteme/socket/timecounter/UDPTimeCounterServer.java @@ -0,0 +1,35 @@ +package verteiltesysteme.socket.timecounter; + +import java.net.DatagramPacket; +import java.net.DatagramSocket; +import java.net.InetAddress; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Date; + +class UDPTimeCounterServer { + private static long counter = 0; + + public static void main(String args[]) throws Exception { + int udpPort = 36038; + @SuppressWarnings("resource") + DatagramSocket serverSocket = new DatagramSocket(udpPort); + byte[] receiveData = new byte[1024]; + byte[] sendData = new byte[1024]; + DateFormat df = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); + + while (true) { + DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); + serverSocket.receive(receivePacket); + long number = new Long(new String(receivePacket.getData(), 0, receivePacket.getLength())); + + InetAddress IPAddress = receivePacket.getAddress(); + int clientSrcPort = receivePacket.getPort(); + + counter += number; + sendData = (Long.toString(counter) + " Zeit: " + System.currentTimeMillis() + " " + df.format(new Date(System.currentTimeMillis()))).getBytes(); + DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, clientSrcPort); + serverSocket.send(sendPacket); + } + } +}