Class SERVERZ5

java.lang.Object
  extended by SERVERZ5

public class SERVERZ5
extends java.lang.Object

Serverimplementierung, Auslagerung der Clientprozesse in einen Thread
Dieser Server lässt nur eine bestimmte Anzahl an Clients zu. Die Prozesse der verbundenen Clients werden in einer Liste verwaltet. Es können Plätze gebucht werden.


Field Summary
private  java.util.ArrayList<CLIENTPROZESSZ2> clientprozesse
          Liste der serverseitigen Prozesse, die über die Clientverbindung kommunizieren.
private static int maximaleclientanzahl
          die maximal mögliche Anzahl an Clients
private  int plaetzevorhanden
          Anzahl der Plätze, die noch vorhanden sind
private  int port
          Portnummer des Ports, auf dem die Verbindungen etabliert sind
private  java.net.ServerSocket serverSocket
          bidirektionale Schnittstelle zur Netzwerkprotokoll-Implementierung des Servers
 
Constructor Summary
SERVERZ5()
          Konstruktor des Servers
 
Method Summary
private  void AufNeuenClientWarten()
          wartet auf eine neue Verbindung und lagert diese, falls möglich, in einen Thread aus.
 void ClientProzessEntfernen(CLIENTPROZESSZ2 clientprozess)
          entfernt einen Clientprozess aus der Liste der Clientprozesse In dieser Version synchronisiert!
private  void ClientProzessHinzufuegen(java.net.Socket clientSocket)
          fügt einen Clientprozess falls die maximale Clientanzahl noch nicht erreicht ist.
static void main(java.lang.String[] args)
          Hauptprogramm zum Erzeugen des Serverobjekts
 boolean PlaetzeBuchen(int anzahl)
          die angegebene Anzahl an Plätzen buchen
 int PlaetzeVerfuegbar()
          gibt die Anzahl der noch verfügbaren Plätze zurück
private  void ServerStarten()
          fragt den Port ab und erzeugt den Serversocket
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

serverSocket

private java.net.ServerSocket serverSocket
bidirektionale Schnittstelle zur Netzwerkprotokoll-Implementierung des Servers


port

private int port
Portnummer des Ports, auf dem die Verbindungen etabliert sind


maximaleclientanzahl

private static int maximaleclientanzahl
die maximal mögliche Anzahl an Clients


clientprozesse

private java.util.ArrayList<CLIENTPROZESSZ2> clientprozesse
Liste der serverseitigen Prozesse, die über die Clientverbindung kommunizieren.


plaetzevorhanden

private int plaetzevorhanden
Anzahl der Plätze, die noch vorhanden sind

Constructor Detail

SERVERZ5

public SERVERZ5()
         throws java.io.IOException
Konstruktor des Servers

Throws:
java.io.IOException - eine Ausnahme tritt auf falls:
- der Server nicht gestartet werden kann (weil beispielsweise der Port nicht frei ist)
- die Clientverbindung gestört bzw. unterbrochen wurde.
Method Detail

AufNeuenClientWarten

private void AufNeuenClientWarten()
                           throws java.io.IOException
wartet auf eine neue Verbindung und lagert diese, falls möglich, in einen Thread aus.
Ist die maximal mögliche Anzahl der Verbindungen erreicht, so wird die Clientverbindung kurzzeitig hergestellt um das Stoppsignal Server[stopClient] für den Client zu senden.

Throws:
java.io.IOException

ClientProzessHinzufuegen

private void ClientProzessHinzufuegen(java.net.Socket clientSocket)
                               throws java.io.IOException
fügt einen Clientprozess falls die maximale Clientanzahl noch nicht erreicht ist. Ist die maximal mögliche Anzahl der Verbindungen erreicht, so wird die Clientverbindung kurzzeitig hergestellt um das Stoppsignal Server[stopClient] für den Client zu senden. In dieser Version synchronisiert!

Parameters:
clientSocket - der Socket über den der Clientprozess kommunizieren soll
Throws:
java.io.IOException

ClientProzessEntfernen

public void ClientProzessEntfernen(CLIENTPROZESSZ2 clientprozess)
entfernt einen Clientprozess aus der Liste der Clientprozesse In dieser Version synchronisiert!

Parameters:
clientprozess - der Clientprozess, der aus der Liste entfernt werden soll.

ServerStarten

private void ServerStarten()
                    throws java.io.IOException
fragt den Port ab und erzeugt den Serversocket

Throws:
java.io.IOException

PlaetzeVerfuegbar

public int PlaetzeVerfuegbar()
gibt die Anzahl der noch verfügbaren Plätze zurück

Returns:
Anzahl der verfügbaren Plätze

PlaetzeBuchen

public boolean PlaetzeBuchen(int anzahl)
die angegebene Anzahl an Plätzen buchen

Parameters:
anzahl, - die Anzahl der zu buchenden Plätze
Returns:
gibt false zurück, falls die Buchung aus Platzmangel nicht durchgeführt werden konnte

main

public static void main(java.lang.String[] args)
                 throws java.io.IOException
Hauptprogramm zum Erzeugen des Serverobjekts

Parameters:
args - keine Parameter beim Programmaufruf erforderlich
Throws:
java.io.IOException