diff --git a/exercises/client-server/TCPClient.java b/exercises/client-server/TCPClient.java new file mode 100644 index 0000000000000000000000000000000000000000..3177b2f8b8ebf3e27e56e1dd0102b69a2c6013d4 --- /dev/null +++ b/exercises/client-server/TCPClient.java @@ -0,0 +1,37 @@ +package Client; + +import java.io.PrintStream; +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.io.IOException; +import java.net.Socket; + +public class TCPClient { + public static void main(String args[]) throws IOException { + int PORT = 12345; + String HOST = "127.0.0.1"; + + Socket socket = new Socket(HOST, PORT); + + PrintStream out = new PrintStream(socket.getOutputStream()); + + // BufferedReader reads Keyboard Input + BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); + BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in)); + + while (true) { // ^D will close dialogue + System.out.print("> "); + String message = keyboard.readLine(); + if (message == null) + break; + out.println(message); + + String answer = in.readLine(); + System.out.println("echo: " + answer); + } + in.close(); + keyboard.close(); + out.close(); + socket.close(); + } +} diff --git a/exercises/client-server/TCPServer.java b/exercises/client-server/TCPServer.java new file mode 100644 index 0000000000000000000000000000000000000000..befc2481b4670c8a5043c5f43da6d3fc5aa7dc90 --- /dev/null +++ b/exercises/client-server/TCPServer.java @@ -0,0 +1,39 @@ +package Server; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.PrintStream; +import java.net.ServerSocket; +import java.net.Socket; + +public class TCPServer { + public static void main(String args[]) throws IOException { + int PORT = 12345; + ServerSocket listen = new ServerSocket(PORT); // set port + System.out.printf("Listening on the port: %d\n", PORT); + while (true) { // non-terminating server + + Socket socket = listen.accept(); + BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); + + PrintStream out = new PrintStream(socket.getOutputStream()); + + while (true) { // end of input stream will close dialogue + + String message = in.readLine(); + + if (message == null) { + break; + } + + String answer = message.replace('i', 'o'); + out.println(answer); + } + in.close(); + out.close(); + socket.close(); // close connection + System.out.println("Socket closed."); + } + } +} diff --git a/exercises/monitor_java/Makefile b/exercises/monitor_java/Makefile deleted file mode 100644 index 530fdc8af97a3f48028333d6c1973756a8d497db..0000000000000000000000000000000000000000 --- a/exercises/monitor_java/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -JFLAGS = -g -JC = javac -JVM= java - -.SUFFIXES: .java .class -.java.class: - $(JC) $(JFLAGS) $*.java - -MAIN = SynchronizedCounter - -CLASSES = SynchronizedCounter.java - -default: classes - -classes: $(CLASSES:.java=.class) - -.PHONY: run clean -run: $(MAIN).class - $(JVM) $(MAIN) - -clean: - $(RM) *.class diff --git a/exercises/monitor_java/SynchronizedCounter.java b/exercises/monitor_java/SynchronizedCounter.java deleted file mode 100644 index 3417640696f4d3942e8f340de0244e021932e4bf..0000000000000000000000000000000000000000 --- a/exercises/monitor_java/SynchronizedCounter.java +++ /dev/null @@ -1,46 +0,0 @@ -class Count { - // synchronized block - synchronized void displayCounting(int n, int threadId) { - for (int i = 1; i <= n; i++) { - System.out.printf("Thread %d: %d\n", threadId, i); - try { - // sleep for 500 milliseconds - Thread.sleep(500); - } catch (Exception e) { - System.out.println(e); - } - } - } -} - -// Thread 1 -class Thread_A extends Thread { - Count c; - Thread_A(Count c) { - this.c = c; - } - public void run() { - c.displayCounting(5, 1); - } -} - -// Thread 2 -class Thread_B extends Thread { - Count c; - Thread_B(Count c) { - this.c = c; - } - public void run() { - c.displayCounting(5, 2); - } -} - -public class SynchronizedCounter { - public static void main(String args[]) { - Count obj = new Count(); - Thread_A t1 = new Thread_A(obj); - Thread_B t2 = new Thread_B(obj); - t1.start(); - t2.start(); - } -}