next up previous contents
Next: Funzioni del server Up: Il server Previous: Il server   Contents

Strutture dati del server

Facciamo uso di un array di strutture chiamato ClientSock[], in cui ogni elemento è relativo ad un client collegato e garantisce di individuarlo in modo univoco. In tal modo per noi un client viene identificato completamente tramite l'indice del vettore.


typedef struct
{
   char ip_addr[IP_ADDR];	/* ip address xxx.yyy.zzz.www */
   char name[NAME];		/* nome di login (8 caratteri) */
   char tty[TTY];		/* nome della tty senza tty (es. 3) */
   char nick[NICK];		/* nickname da 15 caratteri */
   int mode;			/* se si e' il moderatore */
   int nclient;			/* il num progressivo del client */
   int nsocket;			/* n. socket assegnato */
}
User;

Tra i campi della struttura sopra elencata sono da notare: nclient e nsocket. Il primo viene usato nell'algoritmo di elezione di un nuovo moderatore se tutti gli altri moderatori si sono scollegati: in questo caso viene eletto il client con il numero minore (cioè si è collegato prima). Il secondo serve per identificare il canale di comunicazione che usa il server per colloquiare con quel particolare client.



Mirko Manea
2000-05-07