sum.netz
Class Server

java.lang.Object
  extended by sum.netz.Server
All Implemented Interfaces:
Serializable

public class Server
extends Object
implements Serializable

Ein Server ist ein vereinfachter ServerSocket, der zusätzliche Funktionen hat.
Es können beliebig viele Kontakte mit Clientverbindungen aufgebaut werden.
Der Dialog mit den Clients wird nebenläufig realisiert.

Version:
7.5 vom 29.10.2013
Author:
Bernard Schriek, Horst Hildebrecht
See Also:
Serialized Form

Constructor Summary
Server(int pPortNr, boolean pTestModus)
          Der Server ist initialisiert.
 
Method Summary
 void bearbeiteNachricht(String pClientIP, int pPartnerPort, String pNachricht)
          Eine Nachricht von einem Client wurde bearbeitet.
 void bearbeiteNachricht(String pClientIP, String pNachricht)
          Eine Nachricht von einem Client wurde bearbeitet.
 void bearbeiteVerbindungsaufbau(String pClientIP)
          Ein neuer Client hat sich angemeldet.
 void bearbeiteVerbindungsaufbau(String pClientIP, int pPartnerPort)
          Ein neuer Client hat sich angemeldet.
 void bearbeiteVerbindungsende(String pClientIP)
          Die Verbindung mit einem Client wird durch den Server beendet.
 void bearbeiteVerbindungsende(String pClientIP, int pPartnerPort)
          Die Verbindung mit einem Client wird durch den Server beendet.
 void bearbeiteVerbindungsverlust(String pClientIP)
          Die Verbindung mit einem Client wurde verloren, z.
 void bearbeiteVerbindungsverlust(String pClientIP, int pPartnerPort)
          Die Verbindung mit einem Client wurde verloren, z.
 void beendeVerbindung(String pClientIP)
          Die Verbindung mit der angegebenen IP wurde beendet.
 void beendeVerbindung(String pClientIP, int pPartnerPort)
          Die Verbindung mit der angegebenen IP und dem angegebenen Port wurde beendet.
protected  Vector clientListe()
          Liefert die Liste der ServerClients.
 void gibFrei()
          Der Server wurde geschlossen.
protected  void loescheVerbindung(Serververbindung pVerbindung)
          Eine Verbindung wurde aus der Empfängerliste gelöscht.
 boolean mitProtokoll()
          gibt an, ob alle Operationen des Servers mitprotokolliert werden sollen.
 Serververbindung neueSerververbindung()
          Liefert eine neue Serververbindung, die in die Empfängerliste aufgenommen wird.
 int port()
          Liefert den Port, auf dem die Server Clients akzeptiert.
protected  void schliesseVerbindung(String pClientIP)
          Die Verbindung mit der angegebenen IP wurde geschlossen.
protected  void schliesseVerbindung(String pClientIP, int pPartnerPort)
          Die Verbindung mit der angegebenen IP und dem angegebenen Port wurde geschlossen.
 void sendeAnAlle(String pText)
          Eine Nachricht wurde an alle verbundenen Clients geschickt.
 void sendeAnEinen(String pClientIP, int pPartnerPort, String pText)
          Eine Nachricht wurde an einen Client geschickt.
 void sendeAnEinen(String pClientIP, String pText)
          Eine Nachricht wurde an einen Client geschickt.
 Serververbindung SerververbindungVonIP(String pClientIP)
          Liefert die Serververbindung der angegebenen IP, null falls nicht vorhanden.
 Serververbindung SerververbindungVonIPUndPort(String pClientIP, int pPartnerPort)
          Liefert die Serververbindung der angegebenen IP mit dem angegebenen Port, null falls nicht vorhanden.
 String toString()
           
 int zahlDerVerbindungen()
          Liefert die Zahl der noch offenen Verbindungen.
 
Methods inherited from class
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Server

public Server(int pPortNr,
              boolean pTestModus)
Der Server ist initialisiert.

Parameters:
pPortNr - Portnummer des Sockets
pTestModus - Wenn true, werden bei jeder Operation Meldungen auf der Konsole ausgegeben.
Method Detail

bearbeiteNachricht

public void bearbeiteNachricht(String pClientIP,
                               int pPartnerPort,
                               String pNachricht)
Eine Nachricht von einem Client wurde bearbeitet.
Diese leere Methode sollte in Unterklassen überschrieben werden.

Parameters:
pClientIP - IP-Nummer des Clients, der die Nachricht geschickt hat
pPartnerPort - Port-Nummer des Clients, der die Nachricht geschickt hat
pNachricht - die empfangene Nachricht, die bearbeitet werden soll

bearbeiteNachricht

public void bearbeiteNachricht(String pClientIP,
                               String pNachricht)
Eine Nachricht von einem Client wurde bearbeitet.
Diese leere Methode sollte in Unterklassen überschrieben werden.

Parameters:
pClientIP - IP-Nummer des Clients, der die Nachricht geschickt hat
pNachricht - die empfangene Nachricht, die bearbeitet werden soll

bearbeiteVerbindungsaufbau

public void bearbeiteVerbindungsaufbau(String pClientIP)
Ein neuer Client hat sich angemeldet.
Diese leere Methode kann in einer Unterklasse realisiert werden (Begrüßung).

Parameters:
pClientIP - IP-Nummer des Clients, der neu angemeldet ist

bearbeiteVerbindungsaufbau

public void bearbeiteVerbindungsaufbau(String pClientIP,
                                       int pPartnerPort)
Ein neuer Client hat sich angemeldet.
Diese leere Methode kann in einer Unterklasse realisiert werden (Begrüßung).

Parameters:
pClientIP - IP-Nummer des Clients, der neu angemeldet ist
pPartnerPort - Port-Nummer des Clients, der neu angemeldet ist

bearbeiteVerbindungsende

public void bearbeiteVerbindungsende(String pClientIP)
Die Verbindung mit einem Client wird durch den Server beendet.
Es kann also noch vor dem Ende eine Nachricht versandt werden.
Diese leere Methode kann in einer Unterklasse realisiert werden.

Parameters:
pClientIP - IP-Nummer des Clients, mit dem die Verbindung beendet wurde

bearbeiteVerbindungsende

public void bearbeiteVerbindungsende(String pClientIP,
                                     int pPartnerPort)
Die Verbindung mit einem Client wird durch den Server beendet.
Es kann also noch vor dem Ende eine Nachricht versandt werden.
Diese leere Methode kann in einer Unterklasse realisiert werden.

Parameters:
pClientIP - IP-Nummer des Clients, mit dem die Verbindung beendet wurde
pPartnerPort - Port-Nummer des Clients, mit dem die Verbindung beendet wurde

bearbeiteVerbindungsverlust

public void bearbeiteVerbindungsverlust(String pClientIP)
Die Verbindung mit einem Client wurde verloren, z. B. durch Ausschalten des Rechners
Es kann auch die Verbindung vom Client ohne eine Nachricht an den Server beendet worden sein.
Diese leere Methode kann in einer Unterklasse realisiert werden.

Parameters:
pClientIP - IP-Nummer des Clients, mit dem die Verbindung beendet wurde

bearbeiteVerbindungsverlust

public void bearbeiteVerbindungsverlust(String pClientIP,
                                        int pPartnerPort)
Die Verbindung mit einem Client wurde verloren, z. B. durch Ausschalten des Rechners
Es kann auch die Verbindung vom Client ohne eine Nachricht an den Server beendet worden sein.
Diese leere Methode kann in einer Unterklasse realisiert werden.

Parameters:
pClientIP - IP-Nummer des Clients, mit dem die Verbindung beendet wurde
pPartnerPort - Port-Nummer des Clients, mit dem die Verbindung beendet wurde

beendeVerbindung

public void beendeVerbindung(String pClientIP)
Die Verbindung mit der angegebenen IP wurde beendet.
D.h. dass vor dem Ende noch ein Abschluss des Protokolls ermöglicht wurde.

Parameters:
pClientIP - IP-Nummer des Clients der zu beendenden Verbindung

beendeVerbindung

public void beendeVerbindung(String pClientIP,
                             int pPartnerPort)
Die Verbindung mit der angegebenen IP und dem angegebenen Port wurde beendet.
D.h. dass vor dem Ende noch ein Abschluss des Protokolls ermöglicht wurde.

Parameters:
pClientIP - IP-Nummer des Clients der zu beendenden Verbindung
pPartnerPort - Port-Nummer des Clients der zu beendenden Verbindung

clientListe

protected Vector clientListe()
Liefert die Liste der ServerClients.


gibFrei

public void gibFrei()
Der Server wurde geschlossen.


loescheVerbindung

protected void loescheVerbindung(Serververbindung pVerbindung)
Eine Verbindung wurde aus der Empfängerliste gelöscht.

Parameters:
pVerbindung - die zu löschende Verbindung

mitProtokoll

public boolean mitProtokoll()
gibt an, ob alle Operationen des Servers mitprotokolliert werden sollen.


neueSerververbindung

public Serververbindung neueSerververbindung()
Liefert eine neue Serververbindung, die in die Empfängerliste aufgenommen wird.
Kann in Unterklassen überschrieben werden, damit statt dessen ein neues Exemplar einer Unterklasse von Serververbindung in die Empfängerliste aufgenommen wird.


port

public int port()
Liefert den Port, auf dem die Server Clients akzeptiert.


schliesseVerbindung

protected void schliesseVerbindung(String pClientIP)
Die Verbindung mit der angegebenen IP wurde geschlossen.

Parameters:
pClientIP - IP-Nummer des Clients der zu beendenden Verbindung

schliesseVerbindung

protected void schliesseVerbindung(String pClientIP,
                                   int pPartnerPort)
Die Verbindung mit der angegebenen IP und dem angegebenen Port wurde geschlossen.

Parameters:
pClientIP - IP-Nummer des Clients der zu beendenden Verbindung
pPartnerPort - Port-Nummer des Clients der zu beendenden Verbindung

sendeAnAlle

public void sendeAnAlle(String pText)
Eine Nachricht wurde an alle verbundenen Clients geschickt.

Parameters:
pText - die verschickte Nachricht

sendeAnEinen

public void sendeAnEinen(String pClientIP,
                         int pPartnerPort,
                         String pText)
Eine Nachricht wurde an einen Client geschickt.

Parameters:
pClientIP - IP-Nummer des Empfängers
pPartnerPort - Port-Nummer des Empfängers
pText - die verschickte Nachricht

sendeAnEinen

public void sendeAnEinen(String pClientIP,
                         String pText)
Eine Nachricht wurde an einen Client geschickt.

Parameters:
pClientIP - IP-Nummer des EmpfängerssendeAnEinen
pText - die verschickte Nachricht

SerververbindungVonIP

public Serververbindung SerververbindungVonIP(String pClientIP)
Liefert die Serververbindung der angegebenen IP, null falls nicht vorhanden.

Parameters:
pClientIP - IP-Nummer des Clients der gesuchten Verbindung

SerververbindungVonIPUndPort

public Serververbindung SerververbindungVonIPUndPort(String pClientIP,
                                                     int pPartnerPort)
Liefert die Serververbindung der angegebenen IP mit dem angegebenen Port, null falls nicht vorhanden.

Parameters:
pClientIP - IP-Nummer des Clients der gesuchten Verbindung
pPartnerPort - Port-Nummer des Clients der gesuchten Verbindung

toString

public String toString()
Overrides:
toString in class Object

zahlDerVerbindungen

public int zahlDerVerbindungen()
Liefert die Zahl der noch offenen Verbindungen.