import java.io.*; import java.net.*; public class Client { static int port = EchoServer.DEFAULT_PORT; static String addr = new String(Echo.DEFAULT_ADDR); protected Socket socket; protected BufferedReader in; // Eingabestream public static void readArgs(String[] args) { if(args.length >= 1) addr = new String(args[0]); // Addresse in Parameter übergeben? if(args.length >= 2) { // Portnummer auch übergeben? try { port = Integer.parseInt(args[1]); } catch (NumberFormatException e) { }; } } public static void main(String[] args) { readArgs(args); Client client = new Client(); client.listen(); } public Client() { try { socket = new Socket(addr, port); // Erzeuge den Socket, um mit dem angegebenen Host und Port zu kommunizieren // Erzeuge Streams zum lesen in = new BufferedReader(new InputStreamReader(socket.getInputStream())); System.out.println("Verbunden mit " + // Benutzerinformation socket.getInetAddress() + ":" + socket.getPort()); } catch (IOException e) { System.err.println("Error: " + e); } } public void listen() { try { while(true) { receive(in.readLine()); } // Auf Daten warten, an receive-Prozedur zur Bearbeitung übergeben } catch (IOException e) { System.err.println("Error: " + e); } } public void receive(String line) { if (line != null) System.out.println(line); // Empfangene Daten auf Standard-Out ausgeben } public void finalize() { // Schließen der Streams und des Sockets try { System.out.println("Verbindung beendet."); in.close(); // Eingabestream schließen socket.close(); // Socket schließen } catch (IOException e) { System.err.println("Error: " + e); } } }