La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Corso di Laurea in Ingegneria Informatica anno accademico 2004-05 Gestione di un Sistema di Talk multiutente Candidato Bruno Aleandri 798026 Facoltà di.

Presentazioni simili


Presentazione sul tema: "Corso di Laurea in Ingegneria Informatica anno accademico 2004-05 Gestione di un Sistema di Talk multiutente Candidato Bruno Aleandri 798026 Facoltà di."— Transcript della presentazione:

1 Corso di Laurea in Ingegneria Informatica anno accademico Gestione di un Sistema di Talk multiutente Candidato Bruno Aleandri Facoltà di Ingegneria Università degli Studi di Roma La Sapienza

2 Registrazione dei client presso il server in fase di connessione Creazione di stanze pubbliche con moderatore Possibilità di richiedere una chat privata ad un utente Chat private possono essere accettate, rifiutate o messe in coda Lavagna grafica presente in chat pubbliche e private, con possibilità di caricare immagini di sfondo Applicazione di chat client-server in tecnologia multithread, che prevede:

3 MainThread del server accetta le connessioni dei client che arrivano sul suo ServerSocket Un nuovo thread denominato ClientHandler viene istanziato per ciascun client che si connette Ogni client viene gestito dal proprio ClientHandler fino alla sua disconnessione dal server Server tiene memoria degli utenti connessi e dei talk attivi tramite le proprie strutture dati ConnectionVector e TalkVector Oggetti Connection e Talk rappresentano rispettivamente utenti connessi e talk attivi SERVER

4 Connection Vector Talk Vector Bruno ClientHandler di Bruno CLIENT username: Bruno Talk Vector formula1 Connection Vector identificativo: formula1 moderatore: Bruno

5 CLIENT Le classi dellinterfaccia grafica utilizzano i metodi della classe ChatClient per inviare comandi al server a seguito di azioni dellutente (disaccoppiamento) Classe ChatClient implementa anche un listening thread, che riceve i messaggi dal server ChatClient istanzia un ServiceThread per ogni messaggio ricevuto dal server Unistanza di ServiceThread processa uno e un solo messaggio ServiceThread aggiorna linterfaccia grafica tramite i metodi pubblici delle classi di questultima

6 SERVER CLIENT ChatClient ServiceThread GUI del client

7 PROTOCOLLO DI COMUNICAZIONE Ogni messaggio è costituito da: un codice identificativo con cui distinguere i comandi inviati dal client e le risposte del server un elenco di parametri eventualmente necessari per il processamento della richiesta/risposta Client e Server seguono le regole di un protocollo di comunicazione per lo scambio di messaggi. Esempio: messaggio di chat inviato nel talk formula1: 200 formula1

8 STREAM DI OGGETTI I comandi relativi al disegno devono quindi incapsulare tali oggetti: la classe Message rappresenta il generico comando inviato. Essa è provvista di: un campo stringa, contente il codice identificativo e i parametri di tipo testo un campo LittlePoint, contente leventuale pixel Un pixel disegnato sulla lavagna grafica è rappresentato tramite un oggetto della classe LittlePoint. ObjectInputStream ed ObjectOutputStream utilizzati per veicolare oggetti Message.

9 LAVAGNA GRAFICA (1/2) Consente agli utenti partecipanti a talk pubblici e privati di tracciare disegni, anche contemporaneamente. Oltre al tracciamento di punti e linee, è possibile: utilizzare una gomma per cancellare i disegni selezionare colore e spessore del tratto, e la dimensione della gomma caricare unimmagine (JPEG o GIF) come sfondo condiviso della lavagna salvare su file, in formato JPEG, il contenuto della lavagna Lutente può aprire o chiudere la lavagna nellambito di ciascun talk.

10 LAVAGNA GRAFICA (2/2) I pixel disegnati sulla lavagna sono rappresentati dagli oggetti della classe LittlePoint. Oltre alla posizione, alla dimensione e al colore del punto, tali oggetti memorizzano anche leventuale immagine che si vuole condividere come sfondo della lavagna. Un campo status è utilizzato per distinguere tra oggetti rappresentanti pixel e quelli contenenti immagini, e per specificare particolari operazioni da effettuare sulla lavagna. Per permettere il refresh della lavagna, ogni utente che disegna è associato ad un vettore di LittlePoint rappresentante la sequenza di punti da lui tracciata. Un ulteriore vettore denominato timeIndex tiene memoria della sequenza con cui gli utenti hanno disegnato.

11

12

13


Scaricare ppt "Corso di Laurea in Ingegneria Informatica anno accademico 2004-05 Gestione di un Sistema di Talk multiutente Candidato Bruno Aleandri 798026 Facoltà di."

Presentazioni simili


Annunci Google