001package var.sockets.tcp.echo;
002
003import java.io.BufferedReader;
004import java.io.InputStreamReader;
005import java.io.PrintWriter;
006import java.net.Socket;
007
008/**
009 * Client for echo var.sockets.tcp.echo.EchoServer* service. Liest zeilenweise
010 * von der Console und sendet zum Server. Der Server sendet eine Zeichenkette
011 * zurück, die auf der Konsole ausgegeben wird.
012 *
013 * @author Sandro Leuchter
014 *
015 */
016public class EchoClient {
017
018        /**
019         * main method: entrypoint to run
020         *
021         * @param args address of service to connect to (must be String[0]: host
022         *             (IP-address or DNS hostname), String[1]: port)
023         *
024         */
025        public static void main(String[] args) {
026                String host = args[0];
027                int port = Integer.parseInt(args[1]);
028
029                try (Socket socket = new Socket(host, port);
030                                BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
031                                PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
032                                BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in))) {
033
034                        // Begrüßung vom Server empfangen und auf Konsole ausgeben
035                        String msg = in.readLine();
036                        System.out.println(msg);
037
038                        // Zeile von Konsole einlesen, an Server senden und Antwort von
039                        // Server auf Konsole ausgeben, bis eingegebene Zeile == "q"
040                        while (true) {
041                                System.out.print(">> ");
042                                String line = stdin.readLine();
043                                if ("q".equals(line)) {
044                                        break;
045                                }
046                                out.println(line);
047                                System.out.println(in.readLine());
048                        }
049                } catch (Exception e) {
050                        System.err.println(e);
051                }
052        }
053}