Class SERVERZ3

java.lang.Object
  extended by SERVERZ3

public class SERVERZ3
extends java.lang.Object

Serverimplementierung, Auslagerung der Clientprozesse in einen Thread
Dieser Server lässt nur eine bestimmte Anzahl an Clients zu. Der Zugriff auf die Ressourde clientanzahl ist noch nicht synchronisiert!


Field Summary
private  int clientanzahl
          speichert die aktuelle Clientanzahl
private static int maximaleclientanzahl
          die maximal mögliche Anzahl an Clients
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
SERVERZ3()
          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(CLIENTPROZESSZ1 clientprozess)
          reduziert die Anzahl der Verbindungen um 1.
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
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


clientanzahl

private int clientanzahl
speichert die aktuelle Clientanzahl

Constructor Detail

SERVERZ3

public SERVERZ3()
         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.
In dieser Version ist die Methode nicht synchronisiert!

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 noch nicht synchronisiert!

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

ClientProzessEntfernen

public void ClientProzessEntfernen(CLIENTPROZESSZ1 clientprozess)
reduziert die Anzahl der Verbindungen um 1. In dieser Version noch nicht synchronisiert!


ServerStarten

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

Throws:
java.io.IOException

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