Der Echo-Dienst
Ein weiterer Dienst, den öffentliche Server zur Verfügung stellen, ist der Echo-Dienst. Wenn ein Client, nachdem er eine Verbindung zum Server aufgebaut hat, eine beliebige Textzeile an den Echo-Server sendet, wird diese unverändert vom Server zurückgesandt. Die Verbindung wird anschließend vom Server nicht getrennt. Das Echo-Protokoll ist in RFC 862 spezifiziert. Port 7 ist für den Echo-Dienst reserviert.
Protokoll für den Echo-Dienst
Folgendes Diagramm zeigt die Kommunikation, nachdem der Server gestartet wurde und die Serverdaten zur Initialisierung des Client genutzt wurden. Es wird die Nachricht "Buh" zum Echoserver gesendet.
Implementation
Die Methode sendMessageToServer() (Zeilen 10 – 14) fordert den Nutzer in einem modalen Java-Input-Dialog zur Eingabe einer Nachricht auf und sendet diese an den Server. Zum Versenden der Nachricht wird die Methode send(pMessage: String) der Oberklasse Client verwendet.
Die Methode processMessage (Zeilen 7 – 9) zeigt die Antwort des Echo-Servers in einem Message-Dialog an. Um das Programm zu testen, sollte ein Echoserver auf einem Rechner gestartet werden.
Da der Konstruktor Verbindungen zu einem beliebigen Server, dessen IP-Adresse bekannt ist, auf einem beliebigen Port aufbauen kann, kann das Clientprogramm universell für die Kommunikation zwischen einem Client und einem beliebigen Server verwendet werden.
import javax.swing.JOptionPane;
import Client;
public class EchoClient extends Client {
public EchoClient(String pServerIP, int pServerPort) {
super(pServerIP, pServerPort);
}
public void processMessage(String pMessage) {
JOptionPane.showMessageDialog(null,"Server sendet:\n" + pMessage);
}
public void sendMessageToServer() {
String lMessage;
lMessage = JOptionPane.showInputDialog("Bitte geben Sie eine neue Nachricht ein:");
send(lMessage);
}
}