|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--Server.ServerStdProtocol
La classe ServerStdProtocol implementa il protocollo di comunicazione tra i vari client e sever che vanno a formare la rete della chat.
Field Summary | |
java.util.ArrayList |
clientList
Lista di tutti i client connessi |
ListenClient |
clientListener
Thread che rimane in ascolto per i client |
int |
clientNumPort
Porta di ascolto per i client |
java.util.HashMap |
groupsOn
Lista di tutti i gruppi attivi |
java.io.BufferedReader |
in
Canale di input da chi ha richiesto la creazione dell'oggetto |
java.lang.String |
ipServAddr
Indirizzo del server; questo e' il mio indirizzo |
java.net.ServerSocket |
listenClient
Socket di ascolto per i client |
java.net.ServerSocket |
listenServer
Socket di ascolto per i server |
java.lang.String |
name
Nome del server |
java.io.PrintWriter |
out
Canale di output verso chi ha richiesto la creazione dell'oggetto |
java.lang.String |
pass
Password del server |
int |
portServAddr
Porta di ascolto per i client |
ServerChat |
serverChat
Crea le socket di ascolto |
java.util.ArrayList |
serverList
Lista di tutti i server connessi |
ListenServer |
serverListener
Thread che rimane in ascolto per i server |
int |
serverNumPort
Porta di ascolto per i server |
Constructor Summary | |
ServerStdProtocol(int serverNumPort,
int clientNumPort)
Rende attive le porte di ascolto del server Costruttore che prevede un unico server attivo e nessuna interfaccia se non System.out |
|
ServerStdProtocol(int serverNumPort,
int clientNumPort,
java.io.PipedWriter inputPipe,
java.io.PipedReader outputPipe)
Costruttore che rende attive le porte di ascolto verso i client e i server prevede l'uso di pipe per interfacciarsi con la classe utilizzatrice e scambiare con questa messaggi che poi verranno riportati all'utente finale |
|
ServerStdProtocol(int serverNumPort,
int clientNumPort,
java.io.PipedWriter inputPipe,
java.io.PipedReader outputPipe,
java.lang.String name,
java.lang.String pass)
Rende attive le porte di ascolto del server Costruttore che prevede piu' server attivi e delle pipe come interfaccia verso l'oggetto che in questo caso si occupa di gestire le info verso l'utente Quando il server comincia la sua azione bisogna che tenti di connettersi ad una serie di server di cui conosce l'ubicazione. |
Method Summary | |
boolean |
addClient(ComClient clientToRegister)
Inserisco l'utente appena connesso ed identificato nella lista dei client direttamente connessi a questo server e nella lista del gruppo a cui esso appartiene |
boolean |
addGroup(java.lang.String groupToAdd,
boolean local)
Aggiunge un nuovo gruppo alla lista dei gruppi attivi |
boolean |
addServer(ComServer serverToRegister)
Aggiunge un server alla lista dei server attivi |
boolean |
changeGroup(ComClient client,
java.lang.String newGroup)
Esegue una variazione del gruppo per un client |
void |
connectToOther(java.lang.String cfgFileName)
Legge il file degli indirizzi IP dei server conosciuti e che dovrebbero essere attivi e cerca di connettersi. |
boolean |
connectToServer(java.lang.String address,
int port,
boolean isTheFirst)
Gestisce gli enventuali problemi di connessione che possono derivare nel caso il metodo vada a buon fine ritorna true dopo aver anche ottenuto le info su tutti i server attivi in quel momento e le informazioni di tutti i gruppi |
boolean |
removeClient(ComClient clientToRemove)
Elimina un client non piu' connesso |
boolean |
removeServer(ComServer serverToRemove)
Rimuove un server non piu' connesso |
boolean |
sendAll(java.lang.String group,
java.lang.String message)
Manda a tutti gli utenti del gruppo un messaggio |
boolean |
sendAllServer(java.lang.String message)
Manda a tutti i server connessi e attualmente funzionanti un messaggio |
boolean |
sendPrivate(java.lang.String message)
Manda un messaggio privato ad un utente di un gruppo N.B. non funziona |
Methods inherited from class java.lang.Object |
|
Field Detail |
public int serverNumPort
public int clientNumPort
public int portServAddr
public java.lang.String ipServAddr
public java.net.ServerSocket listenServer
public java.net.ServerSocket listenClient
public ServerChat serverChat
public ListenClient clientListener
public ListenServer serverListener
public java.util.ArrayList clientList
public java.util.ArrayList serverList
public java.util.HashMap groupsOn
public java.io.PrintWriter out
public java.io.BufferedReader in
public java.lang.String name
public java.lang.String pass
Constructor Detail |
public ServerStdProtocol(int serverNumPort, int clientNumPort)
serverNumPort
- int porta di ascolto per i serverclientNumPort
- int porta di ascolto per i clientpublic ServerStdProtocol(int serverNumPort, int clientNumPort, java.io.PipedWriter inputPipe, java.io.PipedReader outputPipe)
serverNumPort
- int porta di ascolto per i serverclientNumPort
- int porta di ascolto per i clientinputPipe
- PipedWriter pipe di input dal quale leggere eventualmente i comandioutputPipe
- PipedReader pipe di output verso l'esterno su quale inviare messaggi all'utetentepublic ServerStdProtocol(int serverNumPort, int clientNumPort, java.io.PipedWriter inputPipe, java.io.PipedReader outputPipe, java.lang.String name, java.lang.String pass)
serverNumPort
- int porta di ascolto per i serverclientNumPort
- int porta di ascolto per i clientinputPipe
- PipedWriter pipe di input dal quale leggere eventualmente i comandioutputPipe
- PipedReader pipe di output verso l'esterno su quale inviare messaggi all'utetentename
- String username dell'attuale server per una identificazionepass
- String password dell'attuale server per una identificazioneMethod Detail |
public void connectToOther(java.lang.String cfgFileName)
cfgFileName
- String nome del file di configurazionepublic boolean connectToServer(java.lang.String address, int port, boolean isTheFirst)
address
- String indirizzo al quale connettersiport
- int porta sull'host remoto alla quale tentare la connessioneisTheFirst
- boolean se il server al quale ci dobbiamo connettere e' il primo
dobbiamo richiedere le info altrimenti se ci siamo
gia' connessi ad altri dobbiamo solo autenticarcipublic boolean addClient(ComClient clientToRegister)
clientToRegister
- ComClient cliente da inserire nella lista degli attivi e
nella lista del relativo gruppopublic boolean addServer(ComServer serverToRegister)
serverToRegister
- ComServer server da inserire nella lista degli attivipublic boolean addGroup(java.lang.String groupToAdd, boolean local)
groupToAdd
- String nome del gruppo da inserirelocal
- boolean identifica se la richiesta ha avuto origine da questo serverpublic boolean removeServer(ComServer serverToRemove)
serverToRemove
- ComServer server da eliminare dalla lista degli attivipublic boolean removeClient(ComClient clientToRemove)
clientToRemove
- ComClient client da rimuovere dalla lista degli attivipublic boolean changeGroup(ComClient client, java.lang.String newGroup)
client
- ComClient client che deve effettuare il cambiamentonewGroup
- String nome del gruppo al quale passarepublic boolean sendAll(java.lang.String group, java.lang.String message)
group
- String gruppo al quale mandare il messaggiomessage
- String messaggio da inviarepublic boolean sendAllServer(java.lang.String message)
message
- String messaggio da inviarepublic boolean sendPrivate(java.lang.String message)
message
- String messaggio da inviare
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |