diff --git a/src/main/java/EchoServer.java b/src/main/java/EchoServer.java new file mode 100644 index 0000000000000000000000000000000000000000..0cd7922f2780385e4b71d798e5266cdb7d5c2c82 --- /dev/null +++ b/src/main/java/EchoServer.java @@ -0,0 +1,44 @@ +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.net.ServerSocket; +import java.net.Socket; + +// Adapted from https://www.baeldung.com/a-guide-to-java-sockets +public class EchoServer { + + private ServerSocket serverSocket; + private Socket clientSocket; + private PrintWriter out; + private BufferedReader in; + + public void start(int port) throws IOException { + serverSocket = new ServerSocket(port); + clientSocket = serverSocket.accept(); + out = new PrintWriter(clientSocket.getOutputStream(), true); + in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); + + String inputLine; + while ((inputLine = in.readLine()) != null) { + if (".".equals(inputLine)) { + out.println("good bye"); + break; + } + out.println(inputLine.toUpperCase()); + } + } + + public void stop() throws IOException { + in.close(); + out.close(); + clientSocket.close(); + serverSocket.close(); + } + + public static void main(String[] args) throws IOException { + EchoServer server=new EchoServer(); + server.start(9191); + } + +} diff --git a/src/main/java/GreetClient.java b/src/main/java/GreetClient.java new file mode 100644 index 0000000000000000000000000000000000000000..f3c76cef85627fb6c7f25a88877b27e874309b2a --- /dev/null +++ b/src/main/java/GreetClient.java @@ -0,0 +1,47 @@ +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.net.Socket; +import java.util.Scanner; + +public class GreetClient { + private Socket clientSocket; + private PrintWriter out; + private BufferedReader in; + + public void startConnection(String ip, int port) throws IOException { + clientSocket = new Socket(ip, port); + out = new PrintWriter(clientSocket.getOutputStream(), true); + in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); + } + + public String sendMessage(String msg) throws IOException { + out.println(msg); + String resp = in.readLine(); + return resp; + } + + public void stopConnection() throws IOException { + in.close(); + out.close(); + clientSocket.close(); + } + + public static void main(String[] args) throws IOException { + GreetClient client = new GreetClient(); + Scanner in = new Scanner(System.in); + client.startConnection("127.0.0.1", 9191); + while (true){ + String text = in.nextLine(); + String response = client.sendMessage(text); + System.out.println("Server Response: " + response); + + if (text.equals(".")){ + break; + } + } + + client.stopConnection(); + } +} \ No newline at end of file