L'organizzazione del programma Server è simile a quella già esaminata del programma Client.

(linea 3) La classe che realizza il programma Server ha il nome
Pappagallo, perchè, in questo esempio, si limita a ripetere al client il messaggio ricevuto.
(linea 5) La classe
ServerSocket fornisce il gestore dell'evento
richiesta apertura connessione.
(Linea 6) Si nota che si crea anche un oggetto di classe Socket. In pratica l'oggetto
ServerSocket ha lo scopo di restare in ascolto di
richieste di connessione
e l'oggetto di classe
Socket ha lo scopo di inviare e ricevere pacchetti sulla connessione con il client.
(linea 13) Se la porta è libera il socket viene creato, altrimenti si verifica un errore.
(linea 20) Il metodo
accept mette il server in attesa che un client richieda l'apertura di una connessione su questo computer e su questo numero di porta.
Quando si stabilisce la connessione il metodo
accept restituisce un oggetto
Socket che si trova sulla stessa porta locale e
si collega, all'altro estremo della connessione, alla porta del client remoto.
Il server può comunicare con il client tramite questo socket e continuare ad ascoltare le richieste di connessione del client sul
ServerSocket.