DOCUMENTAZIONE LANGAMES.DLL
classe "serversocketTCP"
Proprietà pubbliche
- disconnessi(): vettore di boolean
- fine_iscrizioni: boolean true se le iscrizioni sono chiuse
- iniziato: boolean true se la partita è iniziata
- iscritti: numero di iscritti
- manche: manche in corso
- max_iscritti: massimo numero di iscritti accettabile
- nomi(): vettore di stringhe che contiene i nick dei giocatori
- partenza automatica: boolean true se la partita inizia immediatamente dopo aver raggiunto il numero massimo di iscrizioni
- port: porta su cui il server accetta connessioni
- regolamento: stringa che contiene l'insieme dele opzioni di gioco separate da "|"
- ritirati: numero di giocatori disconnessi
- sorteggio: boolean se true il primo giocatore a fare una mossa viene sorteggiato, altrimenti è il primo iscritto
- tocca: giocatore cui spetta la mossa
- totale_manche: numero totale di manche
- autocommand:socket per inviare comandi al server
Metodi pubblici
- Invia(message as string, nsock as integer ): invia un messaggio al client numero nsock
- Invia_a_tutti(message as string): invia un messaggio a tutti i client
- Start(): inizia ad accettare iscrizioni
- Costruttore: New(port): specifica la porta
classe "clientsocketTCP"
Proprietà pubbliche
- indice: rappresenta il numero del client specifico all'interno di tutte le connessioni
Metodi pubblici
- Invia(message as string): invia un messaggio al server
Protocollo di comunicazione
Tutti i messaggi iniziano con una lettera (che specifica il tipo del messaggio) e il dollaro.dopo il simbolo del dollaro ci possono essere altre lettere o numeri.
Il server risponde ai seguenti messaggi in arrivo dai client:
- $nick: richiesta di iscrizione di nick, alla quale risponde con un a$n ove n è il numero di iscrizione
- m$nm: mossa m del giocatore n, al quale risponde con n$nm a tutti i client
- s$t: il client segnala la fine del turno e t è il giocatore cui spetta la prossima mossa. Il server risponde inviando a tutti la stringa "t$t"
- e$: richiesta della lista dei nomi dei giocatori iscritti. Il server risponde con l$lista dove lista è l'elenco dei nomi separati da "|"
- r$n: richiesta della stringa regolamento da parte di n, a cui il server risponde con o$stringa
- x$n: ritiro del giocatore n. il server invia a tutti i client rimanenti il messaggio b$n
- f$: forza il server a chiudere le iscrizioni. Se è impostata la partenza automatica, il server invia a tutti il messaggio t$t
- p$:forza il server a iniziare il gioco e inviare a tutti il messaggio t$t
Note:
- il numero del giocatore n è una cifra da 0 a 9
- la mossa m può essere una stringa di qualsiasi lunghezza
- stringa è l'insieme delle opzioni di gioco separate da un "|"
- i messaggi f$ e p$ possono essere autoinviati dal servere stesso tramite un socket connesso sul localhost (vedi codice PAROLAN)
Il client reagisce ai seguenti messaggi in arrivo dal server generando l'evento appropriato:
- c$: richiesta di connessione al server accettata, si scatena l'evento "connessione_stabilita"
- a$n: richiesta di iscrizione al gioco accettata (n è il numero di iscrizione), si scatena l'evento "nuova_iscrizione"
- n$nm: mossa m di n, si scatena l'evento "nuova_mossa"
- t$t: t è il giocatore cui tocca muovere, si scatena l'evento "nuovo_turno"
- l$lista: arriva la lista dei nomi dei giocatori, si genera l'evento "listagiocatori"
- o$stringa: arriva la striga del regolamento, si scatena l'evento "regolamento"
- b$n: si ritira il giocatore n, si scatena l'evento "disconnesso"
note
- il numero del giocatore n è una cifra da 0 a 9
- la mossa m può essere una stringa di qualsiasi lunghezza
- stringa è l'insieme delle opzioni di gioco separate da un "|"
- i messaggi f$ e p$ possono essere autoinviati dal server stesso autocommand
Torna