// Datei: EchoVerlangen.java
// Datum: 17.12.2018
// Autor: Brecht
// Thema: Echo-Anforderung per Datagramm
// Server wartet auf Host hrz am Port 8888
// Anwendung endet nach jedem Echo
// ---------------------------------------------------------
import java.io.*;
import java.net.*;
class EchoVerlangen {
public static void main(String[] args) throws Exception {
System.out.println("EchoVerlangen startet");
// Servername (eventuell: localhost) und Serverport
// -----------------------------------------------------
String server = "hrz.beuth-hochschule.de";
// server = "localhost";
int port = 8888;
// Socket einrichten und freien Port geben lassen
// -----------------------------------------------------
DatagramSocket ds = new DatagramSocket();
// Reader zum Lesen von der Konsole
// -----------------------------------------------------
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
// IP-Adresse des Servers per DNS-Abfrage ermitteln
// -----------------------------------------------------
InetAddress ip = InetAddress.getByName(server);
// Vom Benutzer Echo-String anfordern
// ----------------------------------------------------
System.out.println("\nGib Echostring (Ende mit quit)");
System.out.print("->");
String echo = br.readLine();
// Datagramm eins bilden und senden
// -----------------------------------------------------
byte[] b = echo.getBytes();
DatagramPacket eins =
new DatagramPacket(b, b.length, ip, port);
ds.send(eins);
// Auf Echo warten, im Datagramm zwei auffangen
// -----------------------------------------------------
byte[] c = new byte[b.length];
DatagramPacket zwei = new DatagramPacket(c, c.length);
ds.receive(zwei);
echo = new String(zwei.getData());
System.out.println("Erhalte als Echo: " + echo);
ds.close();
System.out.println("EchoVerlangen endet");
}
}