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}