Simple Chat

L'obiettivo è quello di costruire una piccola applicazione di chat che rispetti il seguente protocollo.

1. Un server è in ascolto sull'hostname localhost, sulla porta 2893;
2. quando il server accetta una connessione da un client:

  • visualizza sullo standard output l'indirizzo IP del nuovo client connesso;
  • invia al nuovo client connesso il messaggio CONNECTED seguito da un numero di righe pari al numero di client connessi al server in quel momento. Ogni riga contiene l'idirizzo IP e la porta del client, sulla quale è aperta la connessione, utilizzando il formato IP:porta. Ad esempio, la seguente risposta indica che ci sono già 3 client connessi al server, tutti in esecuzione sull'hostname localhost:
CONNECTED
            127.0.0.1:3458
            127.0.0.1:3351
            127.0.0.1:2987
  • invia a tutti i client già connessi il messaggio ADDED IP:port dove IP e port sono l'indirizzo IP e la porta del nuovo client connesso;

3. quando un client, riceve il messaggio CONNECTED, visualizza sul suo standard output tutti i client già connessi. Facendo riferimento al precedente esempio il client visualizza

      Sono connesso con
      127.0.0.1:3458
      127.0.0.1:3351
      127.0.0.1:2987

4. quando un client riceve il messaggio ADDED IP:port, visualizza sul suo standard output il testo Si è aggiunto IP:port;
5. dopo aver effettuato la connessione con il server un qualsiasi client può inviare un messaggio al server con il seguente formato
      SEND testo

6. quando il server riceve un messaggio SEND testo dal client IP:port, allora invia un messaggio con il formato IP:port@MSG testo a tutti i client connessi, escluso il client IP:port;
7. quando un client riceve un messaggio IP:port@MSG testo dal server, visualizza sul suo standard output il testo
      IP:port ha scritto
      testo
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License