Per scopi universitari dovrei realizzare un progetto che realizza una compravendita virtuale: ci sono le entità "casa d'aste", "venditore" e "compratore".
La casa d'aste mantiene la lista degli oggetti in vendita e mette in comunicazione venditori e compratori. Essa comunica via RMI.
I compratori scelgono un oggetto dalla casa d'aste, ottengono il riferimento al venditore e lo contattano. Acquirenti e venditori comunicano via Socket.
L'asta parte con un numero fissato di acquirenti (3), e viene fatta partire dal venditore, che conta le connessioni in ingresso con probabili acquirenti.
I client devono essere multithreaded per gestire messaggi in parallelo, sia via input che via socket tra loro.
Questo è un'ipotetico esempio d'esecuzione (in corsivo i dati inseriti dall'utente):
Acquirente
VenditoreNome: Tizio
Porta d'ascolto: 12345
A quale server RMI ti vuoi connettere? localhost
A quale porta del server RMI ti vuoi connettere? 1099
Recupero una di lista oggetti dal server... fatto!
Seleziona un oggetto:
1. Vecchio cellulare, prezzo base 57 euro
2. Tovaglia di plastica, prezzo base 5 euro
2
Venditore: Caio
Acquirenti iscritti: Pippo
In attesa di altri acquirenti...
Nuovo acquirente: Pluto
Via dell’asta!
Inserire offerta maggiore di 5 euro:
Marco offre 8 euro
12
Hai fatto un’offerta di 12 euro!
Pippo offre 13 euro
13 euro e 1!
13 euro e 2!
Pluto offre 15 euro
15 euro e 1!
15 euro e 2!
15 euro e 3!
Peccato, non hai vinto l’asta.
Pluto si aggiudica l’oggetto a 15 €.
Ho implementato il server RMI e la comunicazione con i client.Nome: Sempronio
Porta d'ascolto: 12345
A quale server RMI ti vuoi connettere? localhost
A quale porta del server RMI ti vuoi connettere? 1099
Inserisci descrizione oggetto:
Vecchio cellulare
Inserisci base d’asta:
57
Attendo acquirenti...
Nuovo acquirente: Topolino
Nuovo acquirente: Paperino
Nuovo acquirente: Gastone
Nuovo acquirente: Paperoga
Via dell’asta!
Topolino offre 60 euro
Nessuna offerta per 20 secondi
60 euro e 1!
Attendo 5 s...60 euro e 2!
Attendo 5 s...60 euro e 3!
Chiudo l’asta.
Hai venduto il tuo oggetto per 60 euro!
Topolino si aggiudica l’oggetto: Vecchio cellulare.
La mia domanda è semplice e banale, non essendo esperto di applicazioni client/server. Premessa: Sto facendo il tutto sulla mia macchina.
Come distinguere i messaggi dei vari utenti (venditori/compratori) su un'unica console?
Altra domanda stupida: dall'esempio di esecuzione non c'è un menù di scelta tra venditore/compratore: come fa l'utente a fare uno o l'altro?
Non so se mi sono spiegato.
Grazie.
