diff --git a/.idea/misc.xml b/.idea/misc.xml index e6be3f1..5082cfa 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml deleted file mode 100644 index 797acea..0000000 --- a/.idea/runConfigurations.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/src/DistributedSorter/SorterClient.java b/src/DistributedSorter/SorterClient.java index 761212f..35077b0 100644 --- a/src/DistributedSorter/SorterClient.java +++ b/src/DistributedSorter/SorterClient.java @@ -1,13 +1,29 @@ package Prog3.src.DistributedSorter; +import java.io.*; +import java.net.Socket; +import java.util.Arrays; import java.util.Scanner; -public class SorterClient { +public class SorterClient implements Runnable{ public static void main(String[] args) { SorterClient client = new SorterClient(); client.run(); } + public static void sendLine(Socket socket, String line) throws IOException { + OutputStream out = socket.getOutputStream(); + PrintWriter writer = new PrintWriter(out); + writer.println(line); + writer.flush(); + } + + public static String receiveLine(Socket socket) throws IOException { + InputStream in = socket.getInputStream(); + BufferedReader reader = new BufferedReader(new InputStreamReader(in)); + return reader.readLine(); + } + public void run(){ Scanner scanner = new Scanner(System.in); while (scanner.hasNextLine()) { @@ -20,7 +36,13 @@ public class SorterClient { scanner.close(); } - private String sort(String line){ + private String sort(String line) { + try (Socket socket = new Socket("localhost", 12345)) { + sendLine(socket, line); + receiveLine(socket); + } catch (Exception e) { + return "Error connecting to the server."; + } } } diff --git a/src/DistributedSorter/SorterServer.java b/src/DistributedSorter/SorterServer.java new file mode 100644 index 0000000..9003f0b --- /dev/null +++ b/src/DistributedSorter/SorterServer.java @@ -0,0 +1,66 @@ +package DistributedSorter; + +import jdk.jshell.spi.ExecutionControl; + +import java.io.*; +import java.net.ServerSocket; +import java.net.Socket; +import java.util.Arrays; + +public class SorterServer implements Runnable { + + Socket client; + public SorterServer(Socket client) { + this.client = client; + } + + public static void main(String[] args){ + final int port = 12345; + try (ServerSocket socket = new ServerSocket(port)) { + + while (true){ + Socket client = socket.accept(); + Thread thread = new Thread(new SorterServer(client)); + thread.start(); + } + } + catch (Exception e) { + System.err.println("Error: " + e.getMessage()); + } + } + + public static void sendLine(Socket socket, String line) throws IOException { + OutputStream out = socket.getOutputStream(); + PrintWriter writer = new PrintWriter(out); + writer.println(line); + writer.flush(); + } + + public static String receiveLine(Socket socket) throws IOException { + InputStream in = socket.getInputStream(); + BufferedReader reader = new BufferedReader(new InputStreamReader(in)); + return reader.readLine(); + } + + + private String sort(String line){ + char[] chars = line.toCharArray(); + Arrays.sort(chars); + return new String(chars); + } + + @Override + public void run() { + try{ + String line = receiveLine(client); + String answer = sort(line); + sendLine(client, answer); + } catch (IOException e) { + System.err.println("Fehler"); + } + finally{ + try{client.close();} catch(Exception e) + {} + } + } +}