|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.ObjectCHATSERVER
public class CHATSERVER
Implementierung eines Chatservers, Auslagerung der Clientprozesse in einen Thread
Jeder Zugriff auf die Liste clientprozesse muss snychronisiert sein.
Field Summary | |
---|---|
private java.util.ArrayList<CLIENTPROZESS> |
clientprozesse
Liste der serverseitigen Prozesse, die über die Clientverbindung kommunizieren. |
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 | |
---|---|
CHATSERVER(java.lang.String[] args)
Konstruktor des Servers |
Method Summary | |
---|---|
void |
AnAlleSenden(java.lang.String nachricht)
sendet den String nachricht an alle clientprozesse der Liste |
private void |
AufNeuenClientWarten()
wartet auf eine eingehende Clientverbindung und erzeugt für diese eine Verbindung |
void |
ClientProzessEntfernen(CLIENTPROZESS clientprozess)
entfernt den clientprozess von der Liste der Clientprozesse und benachrichtigt alle Chatteilnehmer |
private CLIENTPROZESS |
ClientProzessGeben(java.lang.String spitzname)
ermittelt über den Spitznamen den zugehörigen Clientprozess |
boolean |
ClientProzessHinzufuegen(CLIENTPROZESS clientprozess)
fügt den clientprozess zur Liste der Clientprozesse hinzu und benachrichtigt alle Chatteilnehmer falls die maximale Anzahl der zulässigen Verbindungen erreicht ist, gibt ist der Rückgabewert false und der clientprozess wird beendet |
private void |
ClientVerbindungAufbauen(java.net.Socket clientSocket)
baut eine Verbindung zum Client auf, um dessen Namen zu erfragen. |
static void |
main(java.lang.String[] args)
Hauptprogramm zum Erzeugen des Serverobjekts |
void |
PrivateNachrichtSenden(CLIENTPROZESS clientprozess,
java.lang.String nachricht)
sendet den String nachricht an clientprozess |
boolean |
PrivateNachrichtSenden(java.lang.String spitzname,
java.lang.String nachricht)
versucht den String nachricht an den clientprozess mit dem angegeben Spitznamen zu senden, falls kein Clientprozess mit einem solchen Namen vorhanden ist gibt die funktion false zurück |
private void |
ServerStarten()
Port abfragen und den Serversocket erzeugen |
boolean |
SpitznameVorhanden(java.lang.String spitzname)
prüft ob der Spitzname bereits vorhanden ist. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private java.net.ServerSocket serverSocket
private int port
private static int maximaleclientanzahl
private java.util.ArrayList<CLIENTPROZESS> clientprozesse
Constructor Detail |
---|
public CHATSERVER(java.lang.String[] args) throws java.io.IOException
java.io.IOException
- eine Ausnahme tritt auf falls:Method Detail |
---|
private void ServerStarten() throws java.io.IOException
java.io.IOException
private void AufNeuenClientWarten() throws java.io.IOException
java.io.IOException
private void ClientVerbindungAufbauen(java.net.Socket clientSocket) throws java.io.IOException
clientSocket
- der Socket des Clients
java.io.IOException
public boolean ClientProzessHinzufuegen(CLIENTPROZESS clientprozess)
clientprozess
- der Clientprozess, der hinzugefügt werden soll
public void ClientProzessEntfernen(CLIENTPROZESS clientprozess)
clientprozess
- der Clientprozess, der entfernt werden soll.private CLIENTPROZESS ClientProzessGeben(java.lang.String spitzname)
public boolean SpitznameVorhanden(java.lang.String spitzname)
public void PrivateNachrichtSenden(CLIENTPROZESS clientprozess, java.lang.String nachricht)
clientprozess
- der Empfänger der Nachrichtnachricht
- der Text der Nachrichtpublic boolean PrivateNachrichtSenden(java.lang.String spitzname, java.lang.String nachricht)
public void AnAlleSenden(java.lang.String nachricht)
nachricht
- die Nachricht, die an alle Chatteilnehmer geschickt wird.public static void main(java.lang.String[] args) throws java.io.IOException
args
- keine Parameter beim Programmaufruf erforderlich
java.io.IOException
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |