// Datei: EchoGeben.java
// Datum: 18.12.2018
// Autor: Brecht
// Thema: Mit Datagrammen ein Echo-Serving nachbilden
// Start auf Host hrz am Port 8888
// ---------------------------------------------------------
import java.net.*;
class EchoGeben {
public static void main(String[] args) throws Exception {
System.out.println("EchoGeben startet");
// Datagramm-Socket am Port 8888 einrichten
// -----------------------------------------------------
DatagramSocket ds = new DatagramSocket(8888);
// Vereinbarungen fuer ein (leeres) 10-Bytes-Datagramm
// -----------------------------------------------------
int contentLen = 10;
byte[] b = null;
DatagramPacket dp = null;
// Auf Datagramm warten und es bei Empfang zuruecksenden
// Abbruch beim Empfang von quit
// -----------------------------------------------------
String inhalt = null;
while(true) {
// Leeres Datagramm bilden
// ---------------------------------------------------
b = new byte[contentLen];
dp = new DatagramPacket(b, contentLen);
// Warten und Datagramm zuruecksenden
// ---------------------------------------------------
System.out.println("\nEchoGeben wartet im receive()");
ds.receive(dp);
ds.send(dp);
System.out.println("Echo gesendet");
// Abbruch?
// ---------------------------------------------------
inhalt = new String(dp.getData()).trim();
if(inhalt.equals("quit")) break;
}
ds.close();
System.out.println("EchoGeben endet");
}
}